{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "60be8136",
   "metadata": {},
   "source": [
    "# 期末综合实验任务"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "959e7bf3",
   "metadata": {},
   "source": [
    "### 预处理："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "id": "064a75d2",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 导入库\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "from efficient_apriori import apriori"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "id": "7d713e21",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>总分(满分20.0分)</th>\n",
       "      <th>签到次数（开课13次）</th>\n",
       "      <th>到课率</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>6</td>\n",
       "      <td>5</td>\n",
       "      <td>38%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>16</td>\n",
       "      <td>12</td>\n",
       "      <td>92%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>13</td>\n",
       "      <td>12</td>\n",
       "      <td>92%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>15</td>\n",
       "      <td>11</td>\n",
       "      <td>85%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>10</td>\n",
       "      <td>9</td>\n",
       "      <td>69%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>13</td>\n",
       "      <td>6</td>\n",
       "      <td>46%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>15</td>\n",
       "      <td>11</td>\n",
       "      <td>85%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>11</td>\n",
       "      <td>12</td>\n",
       "      <td>92%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>16</td>\n",
       "      <td>10</td>\n",
       "      <td>77%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>16</td>\n",
       "      <td>12</td>\n",
       "      <td>92%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>13</td>\n",
       "      <td>12</td>\n",
       "      <td>92%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>16</td>\n",
       "      <td>11</td>\n",
       "      <td>85%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>14</td>\n",
       "      <td>8</td>\n",
       "      <td>62%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>18</td>\n",
       "      <td>11</td>\n",
       "      <td>85%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>17</td>\n",
       "      <td>12</td>\n",
       "      <td>92%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>16</td>\n",
       "      <td>12</td>\n",
       "      <td>92%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>16</td>\n",
       "      <td>12</td>\n",
       "      <td>92%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>20</td>\n",
       "      <td>12</td>\n",
       "      <td>92%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>18</td>\n",
       "      <td>12</td>\n",
       "      <td>92%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>12</td>\n",
       "      <td>9</td>\n",
       "      <td>69%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>12</td>\n",
       "      <td>6</td>\n",
       "      <td>46%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>16</td>\n",
       "      <td>12</td>\n",
       "      <td>92%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>13</td>\n",
       "      <td>11</td>\n",
       "      <td>85%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>10</td>\n",
       "      <td>12</td>\n",
       "      <td>92%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>13</td>\n",
       "      <td>9</td>\n",
       "      <td>69%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>17</td>\n",
       "      <td>8</td>\n",
       "      <td>62%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>14</td>\n",
       "      <td>11</td>\n",
       "      <td>85%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>17</td>\n",
       "      <td>12</td>\n",
       "      <td>92%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>13</td>\n",
       "      <td>5</td>\n",
       "      <td>38%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>11</td>\n",
       "      <td>10</td>\n",
       "      <td>77%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>15</td>\n",
       "      <td>12</td>\n",
       "      <td>92%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>14</td>\n",
       "      <td>12</td>\n",
       "      <td>92%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>16</td>\n",
       "      <td>11</td>\n",
       "      <td>85%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>33</th>\n",
       "      <td>13</td>\n",
       "      <td>12</td>\n",
       "      <td>92%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>34</th>\n",
       "      <td>5</td>\n",
       "      <td>4</td>\n",
       "      <td>31%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>35</th>\n",
       "      <td>14</td>\n",
       "      <td>11</td>\n",
       "      <td>85%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>36</th>\n",
       "      <td>13</td>\n",
       "      <td>12</td>\n",
       "      <td>92%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>37</th>\n",
       "      <td>13</td>\n",
       "      <td>12</td>\n",
       "      <td>92%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>38</th>\n",
       "      <td>16</td>\n",
       "      <td>12</td>\n",
       "      <td>92%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>39</th>\n",
       "      <td>15</td>\n",
       "      <td>12</td>\n",
       "      <td>92%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>40</th>\n",
       "      <td>11</td>\n",
       "      <td>5</td>\n",
       "      <td>38%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>41</th>\n",
       "      <td>10</td>\n",
       "      <td>10</td>\n",
       "      <td>77%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>42</th>\n",
       "      <td>12</td>\n",
       "      <td>12</td>\n",
       "      <td>92%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43</th>\n",
       "      <td>14</td>\n",
       "      <td>12</td>\n",
       "      <td>92%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>44</th>\n",
       "      <td>16</td>\n",
       "      <td>8</td>\n",
       "      <td>62%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45</th>\n",
       "      <td>11</td>\n",
       "      <td>9</td>\n",
       "      <td>69%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>46</th>\n",
       "      <td>15</td>\n",
       "      <td>12</td>\n",
       "      <td>92%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>47</th>\n",
       "      <td>11</td>\n",
       "      <td>11</td>\n",
       "      <td>85%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>48</th>\n",
       "      <td>17</td>\n",
       "      <td>12</td>\n",
       "      <td>92%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>49</th>\n",
       "      <td>18</td>\n",
       "      <td>10</td>\n",
       "      <td>77%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50</th>\n",
       "      <td>13</td>\n",
       "      <td>11</td>\n",
       "      <td>85%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>51</th>\n",
       "      <td>12</td>\n",
       "      <td>10</td>\n",
       "      <td>77%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>52</th>\n",
       "      <td>15</td>\n",
       "      <td>12</td>\n",
       "      <td>92%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>53</th>\n",
       "      <td>13</td>\n",
       "      <td>9</td>\n",
       "      <td>69%</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>54</th>\n",
       "      <td>15</td>\n",
       "      <td>11</td>\n",
       "      <td>85%</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    总分(满分20.0分)  签到次数（开课13次）  到课率\n",
       "0             6            5  38%\n",
       "1            16           12  92%\n",
       "2            13           12  92%\n",
       "3            15           11  85%\n",
       "4            10            9  69%\n",
       "5            13            6  46%\n",
       "6            15           11  85%\n",
       "7            11           12  92%\n",
       "8            16           10  77%\n",
       "9            16           12  92%\n",
       "10           13           12  92%\n",
       "11           16           11  85%\n",
       "12           14            8  62%\n",
       "13           18           11  85%\n",
       "14           17           12  92%\n",
       "15           16           12  92%\n",
       "16           16           12  92%\n",
       "17           20           12  92%\n",
       "18           18           12  92%\n",
       "19           12            9  69%\n",
       "20           12            6  46%\n",
       "21           16           12  92%\n",
       "22           13           11  85%\n",
       "23           10           12  92%\n",
       "24           13            9  69%\n",
       "25           17            8  62%\n",
       "26           14           11  85%\n",
       "27           17           12  92%\n",
       "28           13            5  38%\n",
       "29           11           10  77%\n",
       "30           15           12  92%\n",
       "31           14           12  92%\n",
       "32           16           11  85%\n",
       "33           13           12  92%\n",
       "34            5            4  31%\n",
       "35           14           11  85%\n",
       "36           13           12  92%\n",
       "37           13           12  92%\n",
       "38           16           12  92%\n",
       "39           15           12  92%\n",
       "40           11            5  38%\n",
       "41           10           10  77%\n",
       "42           12           12  92%\n",
       "43           14           12  92%\n",
       "44           16            8  62%\n",
       "45           11            9  69%\n",
       "46           15           12  92%\n",
       "47           11           11  85%\n",
       "48           17           12  92%\n",
       "49           18           10  77%\n",
       "50           13           11  85%\n",
       "51           12           10  77%\n",
       "52           15           12  92%\n",
       "53           13            9  69%\n",
       "54           15           11  85%"
      ]
     },
     "execution_count": 104,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 读取文件\n",
    "df = pd.read_excel(r'数据挖掘-汇总-数据表.xlsx',\n",
    "                   usecols=[i for i in range(1,4)],         # 读取9-23列\n",
    "                   skiprows=range(0,1),                     # 不读取0-3行\n",
    "                   nrows=56)                                # 读取前41列\n",
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "id": "547f95b3",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>总分(满分20.0分)</th>\n",
       "      <th>签到次数（开课13次）</th>\n",
       "      <th>到课率</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>6.0</td>\n",
       "      <td>5.0</td>\n",
       "      <td>0.38</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>16.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>0.92</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>13.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>0.92</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>15.0</td>\n",
       "      <td>11.0</td>\n",
       "      <td>0.85</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>10.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>0.69</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>13.0</td>\n",
       "      <td>6.0</td>\n",
       "      <td>0.46</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>15.0</td>\n",
       "      <td>11.0</td>\n",
       "      <td>0.85</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>11.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>0.92</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>16.0</td>\n",
       "      <td>10.0</td>\n",
       "      <td>0.77</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>16.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>0.92</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>13.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>0.92</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>16.0</td>\n",
       "      <td>11.0</td>\n",
       "      <td>0.85</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>14.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>0.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>18.0</td>\n",
       "      <td>11.0</td>\n",
       "      <td>0.85</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>17.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>0.92</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>16.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>0.92</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>16.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>0.92</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>20.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>0.92</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>18.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>0.92</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>12.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>0.69</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>12.0</td>\n",
       "      <td>6.0</td>\n",
       "      <td>0.46</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>16.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>0.92</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>13.0</td>\n",
       "      <td>11.0</td>\n",
       "      <td>0.85</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>10.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>0.92</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>13.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>0.69</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>17.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>0.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>14.0</td>\n",
       "      <td>11.0</td>\n",
       "      <td>0.85</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>17.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>0.92</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>13.0</td>\n",
       "      <td>5.0</td>\n",
       "      <td>0.38</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>11.0</td>\n",
       "      <td>10.0</td>\n",
       "      <td>0.77</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>15.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>0.92</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>14.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>0.92</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>16.0</td>\n",
       "      <td>11.0</td>\n",
       "      <td>0.85</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>33</th>\n",
       "      <td>13.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>0.92</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>34</th>\n",
       "      <td>5.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>0.31</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>35</th>\n",
       "      <td>14.0</td>\n",
       "      <td>11.0</td>\n",
       "      <td>0.85</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>36</th>\n",
       "      <td>13.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>0.92</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>37</th>\n",
       "      <td>13.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>0.92</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>38</th>\n",
       "      <td>16.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>0.92</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>39</th>\n",
       "      <td>15.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>0.92</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>40</th>\n",
       "      <td>11.0</td>\n",
       "      <td>5.0</td>\n",
       "      <td>0.38</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>41</th>\n",
       "      <td>10.0</td>\n",
       "      <td>10.0</td>\n",
       "      <td>0.77</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>42</th>\n",
       "      <td>12.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>0.92</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43</th>\n",
       "      <td>14.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>0.92</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>44</th>\n",
       "      <td>16.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>0.62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45</th>\n",
       "      <td>11.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>0.69</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>46</th>\n",
       "      <td>15.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>0.92</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>47</th>\n",
       "      <td>11.0</td>\n",
       "      <td>11.0</td>\n",
       "      <td>0.85</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>48</th>\n",
       "      <td>17.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>0.92</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>49</th>\n",
       "      <td>18.0</td>\n",
       "      <td>10.0</td>\n",
       "      <td>0.77</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50</th>\n",
       "      <td>13.0</td>\n",
       "      <td>11.0</td>\n",
       "      <td>0.85</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>51</th>\n",
       "      <td>12.0</td>\n",
       "      <td>10.0</td>\n",
       "      <td>0.77</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>52</th>\n",
       "      <td>15.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>0.92</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>53</th>\n",
       "      <td>13.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>0.69</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>54</th>\n",
       "      <td>15.0</td>\n",
       "      <td>11.0</td>\n",
       "      <td>0.85</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    总分(满分20.0分)  签到次数（开课13次）   到课率\n",
       "0           6.0          5.0  0.38\n",
       "1          16.0         12.0  0.92\n",
       "2          13.0         12.0  0.92\n",
       "3          15.0         11.0  0.85\n",
       "4          10.0          9.0  0.69\n",
       "5          13.0          6.0  0.46\n",
       "6          15.0         11.0  0.85\n",
       "7          11.0         12.0  0.92\n",
       "8          16.0         10.0  0.77\n",
       "9          16.0         12.0  0.92\n",
       "10         13.0         12.0  0.92\n",
       "11         16.0         11.0  0.85\n",
       "12         14.0          8.0  0.62\n",
       "13         18.0         11.0  0.85\n",
       "14         17.0         12.0  0.92\n",
       "15         16.0         12.0  0.92\n",
       "16         16.0         12.0  0.92\n",
       "17         20.0         12.0  0.92\n",
       "18         18.0         12.0  0.92\n",
       "19         12.0          9.0  0.69\n",
       "20         12.0          6.0  0.46\n",
       "21         16.0         12.0  0.92\n",
       "22         13.0         11.0  0.85\n",
       "23         10.0         12.0  0.92\n",
       "24         13.0          9.0  0.69\n",
       "25         17.0          8.0  0.62\n",
       "26         14.0         11.0  0.85\n",
       "27         17.0         12.0  0.92\n",
       "28         13.0          5.0  0.38\n",
       "29         11.0         10.0  0.77\n",
       "30         15.0         12.0  0.92\n",
       "31         14.0         12.0  0.92\n",
       "32         16.0         11.0  0.85\n",
       "33         13.0         12.0  0.92\n",
       "34          5.0          4.0  0.31\n",
       "35         14.0         11.0  0.85\n",
       "36         13.0         12.0  0.92\n",
       "37         13.0         12.0  0.92\n",
       "38         16.0         12.0  0.92\n",
       "39         15.0         12.0  0.92\n",
       "40         11.0          5.0  0.38\n",
       "41         10.0         10.0  0.77\n",
       "42         12.0         12.0  0.92\n",
       "43         14.0         12.0  0.92\n",
       "44         16.0          8.0  0.62\n",
       "45         11.0          9.0  0.69\n",
       "46         15.0         12.0  0.92\n",
       "47         11.0         11.0  0.85\n",
       "48         17.0         12.0  0.92\n",
       "49         18.0         10.0  0.77\n",
       "50         13.0         11.0  0.85\n",
       "51         12.0         10.0  0.77\n",
       "52         15.0         12.0  0.92\n",
       "53         13.0          9.0  0.69\n",
       "54         15.0         11.0  0.85"
      ]
     },
     "execution_count": 105,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "list = [float(i[0:2])/100 for i in df[\"到课率\"]]\n",
    "df[\"到课率\"] = list\n",
    "df[[\"总分(满分20.0分)\",\"签到次数（开课13次）\",\"到课率\"]] = df[[\"总分(满分20.0分)\",\"签到次数（开课13次）\",\"到课率\"]].astype(float)\n",
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "id": "f85c2395",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 6.  ,  5.  ,  0.38, 16.  , 12.  ,  0.92, 13.  , 12.  ,  0.92,\n",
       "        15.  , 11.  ,  0.85, 10.  ,  9.  ,  0.69, 13.  ,  6.  ,  0.46,\n",
       "        15.  , 11.  ,  0.85, 11.  , 12.  ,  0.92, 16.  , 10.  ,  0.77,\n",
       "        16.  , 12.  ,  0.92, 13.  , 12.  ,  0.92, 16.  , 11.  ,  0.85,\n",
       "        14.  ,  8.  ,  0.62, 18.  , 11.  ,  0.85, 17.  , 12.  ,  0.92,\n",
       "        16.  , 12.  ,  0.92, 16.  , 12.  ,  0.92, 20.  , 12.  ,  0.92,\n",
       "        18.  ],\n",
       "       [12.  ,  0.92, 12.  ,  9.  ,  0.69, 12.  ,  6.  ,  0.46, 16.  ,\n",
       "        12.  ,  0.92, 13.  , 11.  ,  0.85, 10.  , 12.  ,  0.92, 13.  ,\n",
       "         9.  ,  0.69, 17.  ,  8.  ,  0.62, 14.  , 11.  ,  0.85, 17.  ,\n",
       "        12.  ,  0.92, 13.  ,  5.  ,  0.38, 11.  , 10.  ,  0.77, 15.  ,\n",
       "        12.  ,  0.92, 14.  , 12.  ,  0.92, 16.  , 11.  ,  0.85, 13.  ,\n",
       "        12.  ,  0.92,  5.  ,  4.  ,  0.31, 14.  , 11.  ,  0.85, 13.  ,\n",
       "        12.  ],\n",
       "       [ 0.92, 13.  , 12.  ,  0.92, 16.  , 12.  ,  0.92, 15.  , 12.  ,\n",
       "         0.92, 11.  ,  5.  ,  0.38, 10.  , 10.  ,  0.77, 12.  , 12.  ,\n",
       "         0.92, 14.  , 12.  ,  0.92, 16.  ,  8.  ,  0.62, 11.  ,  9.  ,\n",
       "         0.69, 15.  , 12.  ,  0.92, 11.  , 11.  ,  0.85, 17.  , 12.  ,\n",
       "         0.92, 18.  , 10.  ,  0.77, 13.  , 11.  ,  0.85, 12.  , 10.  ,\n",
       "         0.77, 15.  , 12.  ,  0.92, 13.  ,  9.  ,  0.69, 15.  , 11.  ,\n",
       "         0.85]])"
      ]
     },
     "execution_count": 106,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 等深分箱（分3箱）\n",
    "data_box = df.values.reshape([3,-1])\n",
    "data_box"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 107,
   "id": "42cb5c55",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([8.79272727, 8.79272727, 8.79272727, 8.05018182, 8.05018182,\n",
       "       8.05018182, 8.22763636, 8.22763636, 8.22763636])"
      ]
     },
     "execution_count": 107,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# ⽤箱均值光滑\n",
    "np.repeat(data_box.mean(axis=1), 3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "094ccd82",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "18b41816",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "a78a0c42",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "5e971197",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "a35d80f2",
   "metadata": {},
   "source": [
    "### 关联"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "id": "4328ed58",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "from efficient_apriori import apriori"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "id": "5e8062af",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>得分 (总:6.0分)</th>\n",
       "      <th>签到方式.2</th>\n",
       "      <th>签到方式.3</th>\n",
       "      <th>得分 (总:5.0分)</th>\n",
       "      <th>签到方式.4</th>\n",
       "      <th>得分 (总:3.0分)</th>\n",
       "      <th>签到方式.5</th>\n",
       "      <th>得分 (总:2.0分)</th>\n",
       "      <th>签到方式.6</th>\n",
       "      <th>签到方式.7</th>\n",
       "      <th>签到方式.8</th>\n",
       "      <th>得分 (总:4.0分)</th>\n",
       "      <th>签到方式.9</th>\n",
       "      <th>签到方式.10</th>\n",
       "      <th>签到方式.11</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>0</td>\n",
       "      <td>未上课</td>\n",
       "      <td>0</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>0</td>\n",
       "      <td>未上课</td>\n",
       "      <td>未上课</td>\n",
       "      <td>未上课</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>未上课</td>\n",
       "      <td>未上课</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>6</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>3</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>3</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>6</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>3</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>0</td>\n",
       "      <td>未上课</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0</td>\n",
       "      <td>未上课</td>\n",
       "      <td>未上课</td>\n",
       "      <td>5</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>1</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>0</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>6</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>3</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>0</td>\n",
       "      <td>未上课</td>\n",
       "      <td>未上课</td>\n",
       "      <td>未上课</td>\n",
       "      <td>0</td>\n",
       "      <td>未上课</td>\n",
       "      <td>未上课</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>6</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>5</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>0</td>\n",
       "      <td>未上课</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>3</td>\n",
       "      <td>课堂暗号</td>\n",
       "      <td>课堂暗号</td>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>课堂暗号</td>\n",
       "      <td>0</td>\n",
       "      <td>课堂暗号</td>\n",
       "      <td>课堂暗号</td>\n",
       "      <td>课堂暗号</td>\n",
       "      <td>2</td>\n",
       "      <td>课堂暗号</td>\n",
       "      <td>课堂暗号</td>\n",
       "      <td>课堂暗号</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>5</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>3</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>未上课</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>未上课</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>6</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>5</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>3</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>0</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>3</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>0</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>未上课</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>6</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>未上课</td>\n",
       "      <td>5</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>3</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>0</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>“正在上课”提示</td>\n",
       "      <td>未上课</td>\n",
       "      <td>0</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>未上课</td>\n",
       "      <td>“正在上课”提示</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>6</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>5</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>3</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>未上课</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>6</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>3</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>0</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>“正在上课”提示</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>5</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>3</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>6</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>5</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>3</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>0</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>6</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>5</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>3</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>6</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>5</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>3</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>0</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>0</td>\n",
       "      <td>未上课</td>\n",
       "      <td>未上课</td>\n",
       "      <td>5</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>3</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>5</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>3</td>\n",
       "      <td>“正在上课”提示</td>\n",
       "      <td>0</td>\n",
       "      <td>未上课</td>\n",
       "      <td>未上课</td>\n",
       "      <td>未上课</td>\n",
       "      <td>0</td>\n",
       "      <td>未上课</td>\n",
       "      <td>未上课</td>\n",
       "      <td>“正在上课”提示</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>5</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>3</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>5</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>0</td>\n",
       "      <td>未上课</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>3</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>5</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>0</td>\n",
       "      <td>“正在上课”提示</td>\n",
       "      <td>0</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>5</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>0</td>\n",
       "      <td>未上课</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>未上课</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>未上课</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>6</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>5</td>\n",
       "      <td>“正在上课”提示</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>0</td>\n",
       "      <td>未上课</td>\n",
       "      <td>未上课</td>\n",
       "      <td>未上课</td>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>未上课</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>5</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>3</td>\n",
       "      <td>“正在上课”提示</td>\n",
       "      <td>0</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>“正在上课”提示</td>\n",
       "      <td>未上课</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>3</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>6</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>3</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>0</td>\n",
       "      <td>未上课</td>\n",
       "      <td>未上课</td>\n",
       "      <td>未上课</td>\n",
       "      <td>0</td>\n",
       "      <td>未上课</td>\n",
       "      <td>未上课</td>\n",
       "      <td>未上课</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>0</td>\n",
       "      <td>未上课</td>\n",
       "      <td>3</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>5</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>“正在上课”提示</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>6</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>5</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>1</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>0</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>6</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>未上课</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>33</th>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>3</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>34</th>\n",
       "      <td>3</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>未上课</td>\n",
       "      <td>0</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>0</td>\n",
       "      <td>未上课</td>\n",
       "      <td>未上课</td>\n",
       "      <td>未上课</td>\n",
       "      <td>0</td>\n",
       "      <td>未上课</td>\n",
       "      <td>未上课</td>\n",
       "      <td>未上课</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>35</th>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>5</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>1</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>“正在上课”提示</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>未上课</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>36</th>\n",
       "      <td>5</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>3</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>1</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>37</th>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>3</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>38</th>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>5</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>3</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>39</th>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>5</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>40</th>\n",
       "      <td>6</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>1</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>0</td>\n",
       "      <td>未上课</td>\n",
       "      <td>未上课</td>\n",
       "      <td>未上课</td>\n",
       "      <td>0</td>\n",
       "      <td>未上课</td>\n",
       "      <td>未上课</td>\n",
       "      <td>未上课</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>41</th>\n",
       "      <td>6</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>0</td>\n",
       "      <td>未上课</td>\n",
       "      <td>0</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>0</td>\n",
       "      <td>未上课</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>“正在上课”提示</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>42</th>\n",
       "      <td>5</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>0</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>1</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43</th>\n",
       "      <td>5</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>5</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>0</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>44</th>\n",
       "      <td>6</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>5</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>3</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>0</td>\n",
       "      <td>未上课</td>\n",
       "      <td>未上课</td>\n",
       "      <td>未上课</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>未上课</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45</th>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>5</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>0</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>0</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>未上课</td>\n",
       "      <td>未上课</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>46</th>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>3</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>47</th>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>3</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>0</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>未上课</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>48</th>\n",
       "      <td>6</td>\n",
       "      <td>“正在上课”提示</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>4</td>\n",
       "      <td>“正在上课”提示</td>\n",
       "      <td>3</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>0</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>“正在上课”提示</td>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>49</th>\n",
       "      <td>6</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>5</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>3</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>0</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>未上课</td>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>未上课</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50</th>\n",
       "      <td>5</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>5</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>3</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>0</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>“正在上课”提示</td>\n",
       "      <td>未上课</td>\n",
       "      <td>0</td>\n",
       "      <td>“正在上课”提示</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>51</th>\n",
       "      <td>6</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>3</td>\n",
       "      <td>“正在上课”提示</td>\n",
       "      <td>3</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>0</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>未上课</td>\n",
       "      <td>0</td>\n",
       "      <td>未上课</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>52</th>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>1</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>4</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>53</th>\n",
       "      <td>6</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>5</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>0</td>\n",
       "      <td>未上课</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>0</td>\n",
       "      <td>未上课</td>\n",
       "      <td>未上课</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>54</th>\n",
       "      <td>6</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>5</td>\n",
       "      <td>“正在上课”提示</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>0</td>\n",
       "      <td>未上课</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>2</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "      <td>扫二维码</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    得分 (总:6.0分)    签到方式.2 签到方式.3  得分 (总:5.0分)    签到方式.4  得分 (总:3.0分)  \\\n",
       "0             4      扫二维码   扫二维码            0       未上课            0   \n",
       "1             6      扫二维码   扫二维码            3      扫二维码            2   \n",
       "2             3      扫二维码   扫二维码            4      扫二维码            2   \n",
       "3             6      扫二维码   扫二维码            4      扫二维码            3   \n",
       "4             0       未上课    未上课            5      扫二维码            1   \n",
       "5             6      扫二维码   扫二维码            4      扫二维码            3   \n",
       "6             6      扫二维码   扫二维码            5      扫二维码            0   \n",
       "7             3      课堂暗号   课堂暗号            4      扫二维码            2   \n",
       "8             4      扫二维码   扫二维码            5      扫二维码            3   \n",
       "9             6      扫二维码   扫二维码            5      扫二维码            3   \n",
       "10            4      扫二维码   扫二维码            4      扫二维码            3   \n",
       "11            4      扫二维码   扫二维码            4      扫二维码            2   \n",
       "12            6      扫二维码    未上课            5      扫二维码            3   \n",
       "13            6      扫二维码   扫二维码            5      扫二维码            3   \n",
       "14            6      扫二维码   扫二维码            4      扫二维码            3   \n",
       "15            4      扫二维码   扫二维码            5      扫二维码            3   \n",
       "16            6      扫二维码   扫二维码            5      扫二维码            3   \n",
       "17            6      扫二维码   扫二维码            5      扫二维码            3   \n",
       "18            6      扫二维码   扫二维码            5      扫二维码            3   \n",
       "19            0       未上课    未上课            5      扫二维码            3   \n",
       "20            4      扫二维码   扫二维码            5      扫二维码            3   \n",
       "21            4      扫二维码   扫二维码            5      扫二维码            3   \n",
       "22            4      扫二维码   扫二维码            5      扫二维码            0   \n",
       "23            3      扫二维码   扫二维码            5      扫二维码            0   \n",
       "24            4      扫二维码   扫二维码            5      扫二维码            0   \n",
       "25            6      扫二维码   扫二维码            5  “正在上课”提示            2   \n",
       "26            4      扫二维码   扫二维码            5      扫二维码            3   \n",
       "27            4      扫二维码   扫二维码            4      扫二维码            3   \n",
       "28            6      扫二维码   扫二维码            4      扫二维码            3   \n",
       "29            4      扫二维码   扫二维码            0       未上课            3   \n",
       "30            4      扫二维码   扫二维码            5      扫二维码            2   \n",
       "31            6      扫二维码   扫二维码            5      扫二维码            1   \n",
       "32            6      扫二维码   扫二维码            2      扫二维码            2   \n",
       "33            4      扫二维码   扫二维码            3      扫二维码            2   \n",
       "34            3      扫二维码    未上课            0      扫二维码            2   \n",
       "35            4      扫二维码   扫二维码            5      扫二维码            1   \n",
       "36            5      扫二维码   扫二维码            3      扫二维码            1   \n",
       "37            4      扫二维码   扫二维码            3      扫二维码            2   \n",
       "38            4      扫二维码   扫二维码            5      扫二维码            3   \n",
       "39            4      扫二维码   扫二维码            5      扫二维码            2   \n",
       "40            6      扫二维码   扫二维码            4      扫二维码            1   \n",
       "41            6      扫二维码   扫二维码            0       未上课            0   \n",
       "42            5      扫二维码   扫二维码            4      扫二维码            2   \n",
       "43            5      扫二维码   扫二维码            5      扫二维码            2   \n",
       "44            6      扫二维码   扫二维码            5      扫二维码            3   \n",
       "45            4      扫二维码   扫二维码            5      扫二维码            2   \n",
       "46            4      扫二维码   扫二维码            4      扫二维码            3   \n",
       "47            4      扫二维码   扫二维码            3      扫二维码            0   \n",
       "48            6  “正在上课”提示   扫二维码            4  “正在上课”提示            3   \n",
       "49            6      扫二维码   扫二维码            5      扫二维码            3   \n",
       "50            5      扫二维码   扫二维码            5      扫二维码            3   \n",
       "51            6      扫二维码   扫二维码            3  “正在上课”提示            3   \n",
       "52            4      扫二维码   扫二维码            4      扫二维码            1   \n",
       "53            6      扫二维码   扫二维码            5      扫二维码            2   \n",
       "54            6      扫二维码   扫二维码            5  “正在上课”提示            2   \n",
       "\n",
       "      签到方式.5  得分 (总:2.0分)    签到方式.6    签到方式.7    签到方式.8  得分 (总:4.0分)  \\\n",
       "0       扫二维码            0       未上课       未上课       未上课            2   \n",
       "1       扫二维码            2      扫二维码      扫二维码      扫二维码            3   \n",
       "2       扫二维码            2      扫二维码      扫二维码      扫二维码            2   \n",
       "3       扫二维码            2      扫二维码      扫二维码      扫二维码            0   \n",
       "4       扫二维码            0      扫二维码      扫二维码      扫二维码            4   \n",
       "5       扫二维码            0       未上课       未上课       未上课            0   \n",
       "6        未上课            2      扫二维码      扫二维码      扫二维码            2   \n",
       "7       课堂暗号            0      课堂暗号      课堂暗号      课堂暗号            2   \n",
       "8       扫二维码            2      扫二维码       未上课      扫二维码            2   \n",
       "9       扫二维码            0      扫二维码      扫二维码      扫二维码            2   \n",
       "10      扫二维码            0      扫二维码      扫二维码      扫二维码            2   \n",
       "11      扫二维码            2      扫二维码       未上课      扫二维码            4   \n",
       "12      扫二维码            0      扫二维码  “正在上课”提示       未上课            0   \n",
       "13      扫二维码            2      扫二维码      扫二维码       未上课            2   \n",
       "14      扫二维码            0      扫二维码      扫二维码      扫二维码            4   \n",
       "15      扫二维码            2      扫二维码      扫二维码      扫二维码            2   \n",
       "16      扫二维码            0      扫二维码      扫二维码      扫二维码            2   \n",
       "17      扫二维码            2      扫二维码      扫二维码      扫二维码            4   \n",
       "18      扫二维码            0      扫二维码      扫二维码      扫二维码            4   \n",
       "19      扫二维码            2      扫二维码      扫二维码      扫二维码            2   \n",
       "20  “正在上课”提示            0       未上课       未上课       未上课            0   \n",
       "21      扫二维码            2      扫二维码      扫二维码      扫二维码            2   \n",
       "22       未上课            2      扫二维码      扫二维码      扫二维码            2   \n",
       "23  “正在上课”提示            0      扫二维码      扫二维码      扫二维码            2   \n",
       "24       未上课            2      扫二维码      扫二维码       未上课            2   \n",
       "25      扫二维码            0       未上课       未上课       未上课            4   \n",
       "26  “正在上课”提示            0      扫二维码  “正在上课”提示       未上课            2   \n",
       "27      扫二维码            2      扫二维码      扫二维码      扫二维码            4   \n",
       "28      扫二维码            0       未上课       未上课       未上课            0   \n",
       "29      扫二维码            2      扫二维码      扫二维码      扫二维码            2   \n",
       "30      扫二维码            2  “正在上课”提示      扫二维码      扫二维码            2   \n",
       "31      扫二维码            0      扫二维码      扫二维码      扫二维码            2   \n",
       "32      扫二维码            2      扫二维码      扫二维码      扫二维码            4   \n",
       "33      扫二维码            2      扫二维码      扫二维码      扫二维码            2   \n",
       "34      扫二维码            0       未上课       未上课       未上课            0   \n",
       "35      扫二维码            2      扫二维码  “正在上课”提示      扫二维码            2   \n",
       "36      扫二维码            2      扫二维码      扫二维码      扫二维码            2   \n",
       "37      扫二维码            2      扫二维码      扫二维码      扫二维码            2   \n",
       "38      扫二维码            2      扫二维码      扫二维码      扫二维码            2   \n",
       "39      扫二维码            2      扫二维码      扫二维码      扫二维码            2   \n",
       "40      扫二维码            0       未上课       未上课       未上课            0   \n",
       "41      扫二维码            0       未上课      扫二维码      扫二维码            4   \n",
       "42      扫二维码            0      扫二维码      扫二维码      扫二维码            1   \n",
       "43      扫二维码            0      扫二维码      扫二维码      扫二维码            2   \n",
       "44      扫二维码            0       未上课       未上课       未上课            2   \n",
       "45      扫二维码            0      扫二维码      扫二维码      扫二维码            0   \n",
       "46      扫二维码            2      扫二维码      扫二维码      扫二维码            2   \n",
       "47      扫二维码            2      扫二维码       未上课      扫二维码            2   \n",
       "48      扫二维码            0      扫二维码      扫二维码  “正在上课”提示            4   \n",
       "49      扫二维码            0      扫二维码      扫二维码       未上课            4   \n",
       "50      扫二维码            0      扫二维码  “正在上课”提示       未上课            0   \n",
       "51      扫二维码            0      扫二维码      扫二维码       未上课            0   \n",
       "52      扫二维码            2      扫二维码      扫二维码      扫二维码            4   \n",
       "53      扫二维码            0       未上课      扫二维码      扫二维码            0   \n",
       "54      扫二维码            0       未上课      扫二维码      扫二维码            2   \n",
       "\n",
       "      签到方式.9   签到方式.10   签到方式.11  \n",
       "0       扫二维码       未上课       未上课  \n",
       "1       扫二维码      扫二维码      扫二维码  \n",
       "2       扫二维码      扫二维码      扫二维码  \n",
       "3        未上课      扫二维码      扫二维码  \n",
       "4       扫二维码      扫二维码      扫二维码  \n",
       "5        未上课       未上课      扫二维码  \n",
       "6       扫二维码      扫二维码      扫二维码  \n",
       "7       课堂暗号      课堂暗号      课堂暗号  \n",
       "8       扫二维码       未上课      扫二维码  \n",
       "9       扫二维码      扫二维码      扫二维码  \n",
       "10      扫二维码      扫二维码      扫二维码  \n",
       "11      扫二维码      扫二维码      扫二维码  \n",
       "12      扫二维码       未上课  “正在上课”提示  \n",
       "13      扫二维码      扫二维码      扫二维码  \n",
       "14      扫二维码      扫二维码  “正在上课”提示  \n",
       "15      扫二维码      扫二维码      扫二维码  \n",
       "16      扫二维码      扫二维码      扫二维码  \n",
       "17      扫二维码      扫二维码      扫二维码  \n",
       "18      扫二维码      扫二维码      扫二维码  \n",
       "19      扫二维码      扫二维码      扫二维码  \n",
       "20       未上课       未上课  “正在上课”提示  \n",
       "21      扫二维码      扫二维码      扫二维码  \n",
       "22      扫二维码      扫二维码      扫二维码  \n",
       "23      扫二维码      扫二维码      扫二维码  \n",
       "24      扫二维码       未上课      扫二维码  \n",
       "25      扫二维码       未上课      扫二维码  \n",
       "26      扫二维码      扫二维码      扫二维码  \n",
       "27      扫二维码      扫二维码      扫二维码  \n",
       "28       未上课       未上课       未上课  \n",
       "29      扫二维码      扫二维码      扫二维码  \n",
       "30      扫二维码      扫二维码      扫二维码  \n",
       "31      扫二维码      扫二维码      扫二维码  \n",
       "32      扫二维码      扫二维码       未上课  \n",
       "33      扫二维码      扫二维码      扫二维码  \n",
       "34       未上课       未上课       未上课  \n",
       "35      扫二维码      扫二维码       未上课  \n",
       "36      扫二维码      扫二维码      扫二维码  \n",
       "37      扫二维码      扫二维码      扫二维码  \n",
       "38      扫二维码      扫二维码      扫二维码  \n",
       "39      扫二维码      扫二维码      扫二维码  \n",
       "40       未上课       未上课       未上课  \n",
       "41      扫二维码  “正在上课”提示      扫二维码  \n",
       "42      扫二维码      扫二维码      扫二维码  \n",
       "43      扫二维码      扫二维码      扫二维码  \n",
       "44      扫二维码       未上课      扫二维码  \n",
       "45      扫二维码       未上课       未上课  \n",
       "46      扫二维码      扫二维码      扫二维码  \n",
       "47      扫二维码      扫二维码      扫二维码  \n",
       "48      扫二维码      扫二维码      扫二维码  \n",
       "49      扫二维码       未上课      扫二维码  \n",
       "50  “正在上课”提示      扫二维码      扫二维码  \n",
       "51       未上课      扫二维码      扫二维码  \n",
       "52      扫二维码      扫二维码      扫二维码  \n",
       "53       未上课       未上课      扫二维码  \n",
       "54      扫二维码      扫二维码      扫二维码  "
      ]
     },
     "execution_count": 112,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = pd.read_excel(r'C:\\Users\\Administrator\\Desktop\\数据挖掘\\期末综合实验任务\\数据挖掘-汇总-数据表.xlsx',\n",
    "                   usecols=[i for i in range(9,24)],         # 读取9-23列\n",
    "                   skiprows=range(0,1),                     # 不读取0-3行\n",
    "                   nrows=56)                                # 读取前41列\n",
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "id": "9f3d1261",
   "metadata": {},
   "outputs": [],
   "source": [
    "index_list = tuple(df.index)\n",
    "columns_list = tuple(df.columns)\n",
    "transactions_list = []\n",
    "list_in = []"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 120,
   "id": "f91cc0f2",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "数据集：\n",
      " 55\n"
     ]
    }
   ],
   "source": [
    "for index in index_list:\n",
    "    # print(index)\n",
    "    for line_value in df.loc[index]:\n",
    "        # print(line_value)\n",
    "        list_in.append(str(line_value))\n",
    "    transactions_list.append(tuple(list_in))\n",
    "    list_in = []\n",
    "print(\"数据集：\\n\", len(transactions_list))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 121,
   "id": "11659085",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1 项集： {('4',): 38, ('扫二维码',): 55, ('0',): 36, ('2',): 42, ('3',): 35}\n",
      "2 项集： {('0', '扫二维码'): 36, ('2', '扫二维码'): 42, ('3', '扫二维码'): 35, ('4', '扫二维码'): 38}\n"
     ]
    }
   ],
   "source": [
    "# 频繁项集(指定min_support=0.6, min_confidence=0.7)\n",
    "itemsets_2, rules_2 = apriori(transactions_list, min_support=0.6, min_confidence=0.7)\n",
    "for i in itemsets_2:\n",
    "    print(i, \"项集：\", itemsets_2[i])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 122,
   "id": "380bca97",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "强关联规则:\n",
      " [{0} -> {扫二维码}, {扫二维码} -> {2}, {2} -> {扫二维码}, {3} -> {扫二维码}, {4} -> {扫二维码}]\n"
     ]
    }
   ],
   "source": [
    "print(\"强关联规则:\\n\", rules_2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "8107efc1",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "352473d8",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "20fefc9c",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "8b0c3273",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "29f3bd97",
   "metadata": {},
   "outputs": [],
   "source": [
    "import csv\n",
    "import pandas as pd\n",
    "from sklearn.utils import shuffle"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "9cfce8b3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>学号</th>\n",
       "      <th>性别</th>\n",
       "      <th>成绩</th>\n",
       "      <th>绩点</th>\n",
       "      <th>学分绩点</th>\n",
       "      <th>修读性质</th>\n",
       "      <th>备注</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>180504501001</td>\n",
       "      <td>男</td>\n",
       "      <td>69.0</td>\n",
       "      <td>1.9</td>\n",
       "      <td>5.7</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>180504501002</td>\n",
       "      <td>男</td>\n",
       "      <td>84.0</td>\n",
       "      <td>3.4</td>\n",
       "      <td>10.2</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>180504501003</td>\n",
       "      <td>男</td>\n",
       "      <td>82.0</td>\n",
       "      <td>3.2</td>\n",
       "      <td>9.6</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>180504501004</td>\n",
       "      <td>女</td>\n",
       "      <td>86.0</td>\n",
       "      <td>3.6</td>\n",
       "      <td>10.8</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>180504501005</td>\n",
       "      <td>男</td>\n",
       "      <td>77.0</td>\n",
       "      <td>2.7</td>\n",
       "      <td>8.1</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>180504501006</td>\n",
       "      <td>女</td>\n",
       "      <td>69.0</td>\n",
       "      <td>1.9</td>\n",
       "      <td>5.7</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>180504501007</td>\n",
       "      <td>男</td>\n",
       "      <td>84.0</td>\n",
       "      <td>3.4</td>\n",
       "      <td>10.2</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>180504501008</td>\n",
       "      <td>男</td>\n",
       "      <td>84.0</td>\n",
       "      <td>3.4</td>\n",
       "      <td>10.2</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>180504501009</td>\n",
       "      <td>男</td>\n",
       "      <td>75.0</td>\n",
       "      <td>2.5</td>\n",
       "      <td>7.5</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>180504501010</td>\n",
       "      <td>男</td>\n",
       "      <td>83.0</td>\n",
       "      <td>3.3</td>\n",
       "      <td>9.9</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>180504501011</td>\n",
       "      <td>男</td>\n",
       "      <td>81.0</td>\n",
       "      <td>3.1</td>\n",
       "      <td>9.3</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>180504501013</td>\n",
       "      <td>男</td>\n",
       "      <td>90.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>180504501014</td>\n",
       "      <td>男</td>\n",
       "      <td>87.0</td>\n",
       "      <td>3.7</td>\n",
       "      <td>11.1</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>180504501015</td>\n",
       "      <td>男</td>\n",
       "      <td>83.0</td>\n",
       "      <td>3.3</td>\n",
       "      <td>9.9</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>180504501016</td>\n",
       "      <td>男</td>\n",
       "      <td>86.0</td>\n",
       "      <td>3.6</td>\n",
       "      <td>10.8</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>180504501017</td>\n",
       "      <td>女</td>\n",
       "      <td>93.0</td>\n",
       "      <td>4.3</td>\n",
       "      <td>12.9</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>180504501018</td>\n",
       "      <td>男</td>\n",
       "      <td>91.0</td>\n",
       "      <td>4.1</td>\n",
       "      <td>12.3</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>180504501019</td>\n",
       "      <td>女</td>\n",
       "      <td>85.0</td>\n",
       "      <td>3.5</td>\n",
       "      <td>10.5</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>180504501021</td>\n",
       "      <td>男</td>\n",
       "      <td>94.0</td>\n",
       "      <td>4.4</td>\n",
       "      <td>13.2</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>180504501022</td>\n",
       "      <td>女</td>\n",
       "      <td>88.0</td>\n",
       "      <td>3.8</td>\n",
       "      <td>11.4</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>180504501023</td>\n",
       "      <td>男</td>\n",
       "      <td>69.0</td>\n",
       "      <td>1.9</td>\n",
       "      <td>5.7</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>180504501024</td>\n",
       "      <td>男</td>\n",
       "      <td>69.0</td>\n",
       "      <td>1.9</td>\n",
       "      <td>5.7</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>180504501025</td>\n",
       "      <td>女</td>\n",
       "      <td>89.0</td>\n",
       "      <td>3.9</td>\n",
       "      <td>11.7</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>180504501026</td>\n",
       "      <td>男</td>\n",
       "      <td>85.0</td>\n",
       "      <td>3.5</td>\n",
       "      <td>10.5</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>180504501027</td>\n",
       "      <td>女</td>\n",
       "      <td>70.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>6.0</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>180504501028</td>\n",
       "      <td>男</td>\n",
       "      <td>85.0</td>\n",
       "      <td>3.5</td>\n",
       "      <td>10.5</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>180504501029</td>\n",
       "      <td>女</td>\n",
       "      <td>89.0</td>\n",
       "      <td>3.9</td>\n",
       "      <td>11.7</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>180504501030</td>\n",
       "      <td>女</td>\n",
       "      <td>79.0</td>\n",
       "      <td>2.9</td>\n",
       "      <td>8.7</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>180504501031</td>\n",
       "      <td>男</td>\n",
       "      <td>89.0</td>\n",
       "      <td>3.9</td>\n",
       "      <td>11.7</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>180504501032</td>\n",
       "      <td>男</td>\n",
       "      <td>69.0</td>\n",
       "      <td>1.9</td>\n",
       "      <td>5.7</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>180504501033</td>\n",
       "      <td>女</td>\n",
       "      <td>83.0</td>\n",
       "      <td>3.3</td>\n",
       "      <td>9.9</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>180504501034</td>\n",
       "      <td>女</td>\n",
       "      <td>88.0</td>\n",
       "      <td>3.8</td>\n",
       "      <td>11.4</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>180504501035</td>\n",
       "      <td>男</td>\n",
       "      <td>86.0</td>\n",
       "      <td>3.6</td>\n",
       "      <td>10.8</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>33</th>\n",
       "      <td>180504501036</td>\n",
       "      <td>男</td>\n",
       "      <td>80.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>34</th>\n",
       "      <td>180504501037</td>\n",
       "      <td>男</td>\n",
       "      <td>83.0</td>\n",
       "      <td>3.3</td>\n",
       "      <td>9.9</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>35</th>\n",
       "      <td>180504501038</td>\n",
       "      <td>男</td>\n",
       "      <td>69.0</td>\n",
       "      <td>1.9</td>\n",
       "      <td>5.7</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>36</th>\n",
       "      <td>180504501039</td>\n",
       "      <td>男</td>\n",
       "      <td>84.0</td>\n",
       "      <td>3.4</td>\n",
       "      <td>10.2</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>37</th>\n",
       "      <td>180504501041</td>\n",
       "      <td>男</td>\n",
       "      <td>80.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>38</th>\n",
       "      <td>180504501042</td>\n",
       "      <td>男</td>\n",
       "      <td>82.0</td>\n",
       "      <td>3.2</td>\n",
       "      <td>9.6</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>39</th>\n",
       "      <td>180504501043</td>\n",
       "      <td>女</td>\n",
       "      <td>95.0</td>\n",
       "      <td>4.5</td>\n",
       "      <td>13.5</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>40</th>\n",
       "      <td>180504501044</td>\n",
       "      <td>女</td>\n",
       "      <td>82.0</td>\n",
       "      <td>3.2</td>\n",
       "      <td>9.6</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>41</th>\n",
       "      <td>180504501045</td>\n",
       "      <td>男</td>\n",
       "      <td>69.0</td>\n",
       "      <td>1.9</td>\n",
       "      <td>5.7</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>42</th>\n",
       "      <td>180504501046</td>\n",
       "      <td>男</td>\n",
       "      <td>80.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43</th>\n",
       "      <td>180504501047</td>\n",
       "      <td>男</td>\n",
       "      <td>84.0</td>\n",
       "      <td>3.4</td>\n",
       "      <td>10.2</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>44</th>\n",
       "      <td>180504501048</td>\n",
       "      <td>女</td>\n",
       "      <td>82.0</td>\n",
       "      <td>3.2</td>\n",
       "      <td>9.6</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45</th>\n",
       "      <td>180504501049</td>\n",
       "      <td>男</td>\n",
       "      <td>89.0</td>\n",
       "      <td>3.9</td>\n",
       "      <td>11.7</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>46</th>\n",
       "      <td>180504501050</td>\n",
       "      <td>女</td>\n",
       "      <td>87.0</td>\n",
       "      <td>3.7</td>\n",
       "      <td>11.1</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>47</th>\n",
       "      <td>180504501051</td>\n",
       "      <td>男</td>\n",
       "      <td>67.0</td>\n",
       "      <td>1.7</td>\n",
       "      <td>5.1</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>48</th>\n",
       "      <td>180504501052</td>\n",
       "      <td>女</td>\n",
       "      <td>90.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>49</th>\n",
       "      <td>180504501053</td>\n",
       "      <td>男</td>\n",
       "      <td>79.0</td>\n",
       "      <td>2.9</td>\n",
       "      <td>8.7</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50</th>\n",
       "      <td>180504501055</td>\n",
       "      <td>男</td>\n",
       "      <td>86.0</td>\n",
       "      <td>3.6</td>\n",
       "      <td>10.8</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>51</th>\n",
       "      <td>180504501056</td>\n",
       "      <td>男</td>\n",
       "      <td>74.0</td>\n",
       "      <td>2.4</td>\n",
       "      <td>7.2</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>52</th>\n",
       "      <td>180504501057</td>\n",
       "      <td>男</td>\n",
       "      <td>82.0</td>\n",
       "      <td>3.2</td>\n",
       "      <td>9.6</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>53</th>\n",
       "      <td>180504501058</td>\n",
       "      <td>男</td>\n",
       "      <td>73.0</td>\n",
       "      <td>2.3</td>\n",
       "      <td>6.9</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>54</th>\n",
       "      <td>180504501059</td>\n",
       "      <td>女</td>\n",
       "      <td>72.0</td>\n",
       "      <td>2.2</td>\n",
       "      <td>6.6</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               学号  性别    成绩   绩点  学分绩点 修读性质 备注\n",
       "0    180504501001   男  69.0  1.9   5.7   初修   \n",
       "1    180504501002   男  84.0  3.4  10.2   初修   \n",
       "2    180504501003   男  82.0  3.2   9.6   初修   \n",
       "3    180504501004   女  86.0  3.6  10.8   初修   \n",
       "4    180504501005   男  77.0  2.7   8.1   初修   \n",
       "5    180504501006   女  69.0  1.9   5.7   初修   \n",
       "6    180504501007   男  84.0  3.4  10.2   初修   \n",
       "7    180504501008   男  84.0  3.4  10.2   初修   \n",
       "8    180504501009   男  75.0  2.5   7.5   初修   \n",
       "9    180504501010   男  83.0  3.3   9.9   初修   \n",
       "10   180504501011   男  81.0  3.1   9.3   初修   \n",
       "11   180504501013   男  90.0  4.0  12.0   初修   \n",
       "12   180504501014   男  87.0  3.7  11.1   初修   \n",
       "13   180504501015   男  83.0  3.3   9.9   初修   \n",
       "14   180504501016   男  86.0  3.6  10.8   初修   \n",
       "15   180504501017   女  93.0  4.3  12.9   初修   \n",
       "16   180504501018   男  91.0  4.1  12.3   初修   \n",
       "17   180504501019   女  85.0  3.5  10.5   初修   \n",
       "18   180504501021   男  94.0  4.4  13.2   初修   \n",
       "19   180504501022   女  88.0  3.8  11.4   初修   \n",
       "20   180504501023   男  69.0  1.9   5.7   初修   \n",
       "21   180504501024   男  69.0  1.9   5.7   初修   \n",
       "22   180504501025   女  89.0  3.9  11.7   初修   \n",
       "23   180504501026   男  85.0  3.5  10.5   初修   \n",
       "24   180504501027   女  70.0  2.0   6.0   初修   \n",
       "25   180504501028   男  85.0  3.5  10.5   初修   \n",
       "26   180504501029   女  89.0  3.9  11.7   初修   \n",
       "27   180504501030   女  79.0  2.9   8.7   初修   \n",
       "28   180504501031   男  89.0  3.9  11.7   初修   \n",
       "29   180504501032   男  69.0  1.9   5.7   初修   \n",
       "30   180504501033   女  83.0  3.3   9.9   初修   \n",
       "31   180504501034   女  88.0  3.8  11.4   初修   \n",
       "32   180504501035   男  86.0  3.6  10.8   初修   \n",
       "33   180504501036   男  80.0  3.0   9.0   初修   \n",
       "34   180504501037   男  83.0  3.3   9.9   初修   \n",
       "35   180504501038   男  69.0  1.9   5.7   初修   \n",
       "36   180504501039   男  84.0  3.4  10.2   初修   \n",
       "37   180504501041   男  80.0  3.0   9.0   初修   \n",
       "38   180504501042   男  82.0  3.2   9.6   初修   \n",
       "39   180504501043   女  95.0  4.5  13.5   初修   \n",
       "40   180504501044   女  82.0  3.2   9.6   初修   \n",
       "41   180504501045   男  69.0  1.9   5.7   初修   \n",
       "42   180504501046   男  80.0  3.0   9.0   初修   \n",
       "43   180504501047   男  84.0  3.4  10.2   初修   \n",
       "44   180504501048   女  82.0  3.2   9.6   初修   \n",
       "45   180504501049   男  89.0  3.9  11.7   初修   \n",
       "46   180504501050   女  87.0  3.7  11.1   初修   \n",
       "47   180504501051   男  67.0  1.7   5.1   初修   \n",
       "48   180504501052   女  90.0  4.0  12.0   初修   \n",
       "49   180504501053   男  79.0  2.9   8.7   初修   \n",
       "50   180504501055   男  86.0  3.6  10.8   初修   \n",
       "51   180504501056   男  74.0  2.4   7.2   初修   \n",
       "52   180504501057   男  82.0  3.2   9.6   初修   \n",
       "53   180504501058   男  73.0  2.3   6.9   初修   \n",
       "54   180504501059   女  72.0  2.2   6.6   初修   "
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 读取55学生成绩相关数据（数据挖掘成绩.xlsx）\n",
    "df_1 = pd.read_excel(r'C:\\Users\\Administrator\\Desktop\\数据挖掘\\期末综合实验任务\\数据挖掘成绩.xlsx',\n",
    "                   usecols=[i for i in range(0,7)],         # 读取0-6列\n",
    "                   skiprows=range(0,4),                     # 不读取0-3行\n",
    "                   nrows=41)                                # 读取前41列\n",
    "\n",
    "df_2 = pd.read_excel(r'C:\\Users\\Administrator\\Desktop\\数据挖掘\\期末综合实验任务\\数据挖掘成绩.xlsx',\n",
    "                   usecols=[i for i in range(0,7)],         # 读取0-6列\n",
    "                   skiprows=range(0,52),                    # 不读取0-52行\n",
    "                   nrows=14)                                # 读取前14列\n",
    "\n",
    "data = pd.concat([df_1, df_2], axis=0)\n",
    "data.index = range(len(data))\n",
    "data[[\"成绩\",\"绩点\",\"学分绩点\"]] = data[[\"成绩\",\"绩点\",\"学分绩点\"]].astype(float)\n",
    "data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "6e3e40d6",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Administrator\\AppData\\Local\\Temp/ipykernel_9628/1574350372.py:9: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame\n",
      "\n",
      "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
      "  data[\"备注\"][i] = \"D\"\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Temp/ipykernel_9628/1574350372.py:5: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame\n",
      "\n",
      "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
      "  data[\"备注\"][i] = \"B\"\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Temp/ipykernel_9628/1574350372.py:7: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame\n",
      "\n",
      "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
      "  data[\"备注\"][i] = \"C\"\n",
      "C:\\Users\\Administrator\\AppData\\Local\\Temp/ipykernel_9628/1574350372.py:3: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame\n",
      "\n",
      "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
      "  data[\"备注\"][i] = \"A\"\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>学号</th>\n",
       "      <th>性别</th>\n",
       "      <th>成绩</th>\n",
       "      <th>绩点</th>\n",
       "      <th>学分绩点</th>\n",
       "      <th>修读性质</th>\n",
       "      <th>备注</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>180504501001</td>\n",
       "      <td>男</td>\n",
       "      <td>69.0</td>\n",
       "      <td>1.9</td>\n",
       "      <td>5.7</td>\n",
       "      <td>初修</td>\n",
       "      <td>D</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>180504501002</td>\n",
       "      <td>男</td>\n",
       "      <td>84.0</td>\n",
       "      <td>3.4</td>\n",
       "      <td>10.2</td>\n",
       "      <td>初修</td>\n",
       "      <td>B</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>180504501003</td>\n",
       "      <td>男</td>\n",
       "      <td>82.0</td>\n",
       "      <td>3.2</td>\n",
       "      <td>9.6</td>\n",
       "      <td>初修</td>\n",
       "      <td>B</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>180504501004</td>\n",
       "      <td>女</td>\n",
       "      <td>86.0</td>\n",
       "      <td>3.6</td>\n",
       "      <td>10.8</td>\n",
       "      <td>初修</td>\n",
       "      <td>B</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>180504501005</td>\n",
       "      <td>男</td>\n",
       "      <td>77.0</td>\n",
       "      <td>2.7</td>\n",
       "      <td>8.1</td>\n",
       "      <td>初修</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>180504501006</td>\n",
       "      <td>女</td>\n",
       "      <td>69.0</td>\n",
       "      <td>1.9</td>\n",
       "      <td>5.7</td>\n",
       "      <td>初修</td>\n",
       "      <td>D</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>180504501007</td>\n",
       "      <td>男</td>\n",
       "      <td>84.0</td>\n",
       "      <td>3.4</td>\n",
       "      <td>10.2</td>\n",
       "      <td>初修</td>\n",
       "      <td>B</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>180504501008</td>\n",
       "      <td>男</td>\n",
       "      <td>84.0</td>\n",
       "      <td>3.4</td>\n",
       "      <td>10.2</td>\n",
       "      <td>初修</td>\n",
       "      <td>B</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>180504501009</td>\n",
       "      <td>男</td>\n",
       "      <td>75.0</td>\n",
       "      <td>2.5</td>\n",
       "      <td>7.5</td>\n",
       "      <td>初修</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>180504501010</td>\n",
       "      <td>男</td>\n",
       "      <td>83.0</td>\n",
       "      <td>3.3</td>\n",
       "      <td>9.9</td>\n",
       "      <td>初修</td>\n",
       "      <td>B</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>180504501011</td>\n",
       "      <td>男</td>\n",
       "      <td>81.0</td>\n",
       "      <td>3.1</td>\n",
       "      <td>9.3</td>\n",
       "      <td>初修</td>\n",
       "      <td>B</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>180504501013</td>\n",
       "      <td>男</td>\n",
       "      <td>90.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>初修</td>\n",
       "      <td>A</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>180504501014</td>\n",
       "      <td>男</td>\n",
       "      <td>87.0</td>\n",
       "      <td>3.7</td>\n",
       "      <td>11.1</td>\n",
       "      <td>初修</td>\n",
       "      <td>B</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>180504501015</td>\n",
       "      <td>男</td>\n",
       "      <td>83.0</td>\n",
       "      <td>3.3</td>\n",
       "      <td>9.9</td>\n",
       "      <td>初修</td>\n",
       "      <td>B</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>180504501016</td>\n",
       "      <td>男</td>\n",
       "      <td>86.0</td>\n",
       "      <td>3.6</td>\n",
       "      <td>10.8</td>\n",
       "      <td>初修</td>\n",
       "      <td>B</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>180504501017</td>\n",
       "      <td>女</td>\n",
       "      <td>93.0</td>\n",
       "      <td>4.3</td>\n",
       "      <td>12.9</td>\n",
       "      <td>初修</td>\n",
       "      <td>A</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>180504501018</td>\n",
       "      <td>男</td>\n",
       "      <td>91.0</td>\n",
       "      <td>4.1</td>\n",
       "      <td>12.3</td>\n",
       "      <td>初修</td>\n",
       "      <td>A</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>180504501019</td>\n",
       "      <td>女</td>\n",
       "      <td>85.0</td>\n",
       "      <td>3.5</td>\n",
       "      <td>10.5</td>\n",
       "      <td>初修</td>\n",
       "      <td>B</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>180504501021</td>\n",
       "      <td>男</td>\n",
       "      <td>94.0</td>\n",
       "      <td>4.4</td>\n",
       "      <td>13.2</td>\n",
       "      <td>初修</td>\n",
       "      <td>A</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>180504501022</td>\n",
       "      <td>女</td>\n",
       "      <td>88.0</td>\n",
       "      <td>3.8</td>\n",
       "      <td>11.4</td>\n",
       "      <td>初修</td>\n",
       "      <td>B</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>180504501023</td>\n",
       "      <td>男</td>\n",
       "      <td>69.0</td>\n",
       "      <td>1.9</td>\n",
       "      <td>5.7</td>\n",
       "      <td>初修</td>\n",
       "      <td>D</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>180504501024</td>\n",
       "      <td>男</td>\n",
       "      <td>69.0</td>\n",
       "      <td>1.9</td>\n",
       "      <td>5.7</td>\n",
       "      <td>初修</td>\n",
       "      <td>D</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>180504501025</td>\n",
       "      <td>女</td>\n",
       "      <td>89.0</td>\n",
       "      <td>3.9</td>\n",
       "      <td>11.7</td>\n",
       "      <td>初修</td>\n",
       "      <td>B</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>180504501026</td>\n",
       "      <td>男</td>\n",
       "      <td>85.0</td>\n",
       "      <td>3.5</td>\n",
       "      <td>10.5</td>\n",
       "      <td>初修</td>\n",
       "      <td>B</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>180504501027</td>\n",
       "      <td>女</td>\n",
       "      <td>70.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>6.0</td>\n",
       "      <td>初修</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>180504501028</td>\n",
       "      <td>男</td>\n",
       "      <td>85.0</td>\n",
       "      <td>3.5</td>\n",
       "      <td>10.5</td>\n",
       "      <td>初修</td>\n",
       "      <td>B</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>180504501029</td>\n",
       "      <td>女</td>\n",
       "      <td>89.0</td>\n",
       "      <td>3.9</td>\n",
       "      <td>11.7</td>\n",
       "      <td>初修</td>\n",
       "      <td>B</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>180504501030</td>\n",
       "      <td>女</td>\n",
       "      <td>79.0</td>\n",
       "      <td>2.9</td>\n",
       "      <td>8.7</td>\n",
       "      <td>初修</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>180504501031</td>\n",
       "      <td>男</td>\n",
       "      <td>89.0</td>\n",
       "      <td>3.9</td>\n",
       "      <td>11.7</td>\n",
       "      <td>初修</td>\n",
       "      <td>B</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>180504501032</td>\n",
       "      <td>男</td>\n",
       "      <td>69.0</td>\n",
       "      <td>1.9</td>\n",
       "      <td>5.7</td>\n",
       "      <td>初修</td>\n",
       "      <td>D</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>180504501033</td>\n",
       "      <td>女</td>\n",
       "      <td>83.0</td>\n",
       "      <td>3.3</td>\n",
       "      <td>9.9</td>\n",
       "      <td>初修</td>\n",
       "      <td>B</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>180504501034</td>\n",
       "      <td>女</td>\n",
       "      <td>88.0</td>\n",
       "      <td>3.8</td>\n",
       "      <td>11.4</td>\n",
       "      <td>初修</td>\n",
       "      <td>B</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>180504501035</td>\n",
       "      <td>男</td>\n",
       "      <td>86.0</td>\n",
       "      <td>3.6</td>\n",
       "      <td>10.8</td>\n",
       "      <td>初修</td>\n",
       "      <td>B</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>33</th>\n",
       "      <td>180504501036</td>\n",
       "      <td>男</td>\n",
       "      <td>80.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>初修</td>\n",
       "      <td>B</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>34</th>\n",
       "      <td>180504501037</td>\n",
       "      <td>男</td>\n",
       "      <td>83.0</td>\n",
       "      <td>3.3</td>\n",
       "      <td>9.9</td>\n",
       "      <td>初修</td>\n",
       "      <td>B</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>35</th>\n",
       "      <td>180504501038</td>\n",
       "      <td>男</td>\n",
       "      <td>69.0</td>\n",
       "      <td>1.9</td>\n",
       "      <td>5.7</td>\n",
       "      <td>初修</td>\n",
       "      <td>D</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>36</th>\n",
       "      <td>180504501039</td>\n",
       "      <td>男</td>\n",
       "      <td>84.0</td>\n",
       "      <td>3.4</td>\n",
       "      <td>10.2</td>\n",
       "      <td>初修</td>\n",
       "      <td>B</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>37</th>\n",
       "      <td>180504501041</td>\n",
       "      <td>男</td>\n",
       "      <td>80.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>初修</td>\n",
       "      <td>B</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>38</th>\n",
       "      <td>180504501042</td>\n",
       "      <td>男</td>\n",
       "      <td>82.0</td>\n",
       "      <td>3.2</td>\n",
       "      <td>9.6</td>\n",
       "      <td>初修</td>\n",
       "      <td>B</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>39</th>\n",
       "      <td>180504501043</td>\n",
       "      <td>女</td>\n",
       "      <td>95.0</td>\n",
       "      <td>4.5</td>\n",
       "      <td>13.5</td>\n",
       "      <td>初修</td>\n",
       "      <td>A</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>40</th>\n",
       "      <td>180504501044</td>\n",
       "      <td>女</td>\n",
       "      <td>82.0</td>\n",
       "      <td>3.2</td>\n",
       "      <td>9.6</td>\n",
       "      <td>初修</td>\n",
       "      <td>B</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>41</th>\n",
       "      <td>180504501045</td>\n",
       "      <td>男</td>\n",
       "      <td>69.0</td>\n",
       "      <td>1.9</td>\n",
       "      <td>5.7</td>\n",
       "      <td>初修</td>\n",
       "      <td>D</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>42</th>\n",
       "      <td>180504501046</td>\n",
       "      <td>男</td>\n",
       "      <td>80.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>初修</td>\n",
       "      <td>B</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43</th>\n",
       "      <td>180504501047</td>\n",
       "      <td>男</td>\n",
       "      <td>84.0</td>\n",
       "      <td>3.4</td>\n",
       "      <td>10.2</td>\n",
       "      <td>初修</td>\n",
       "      <td>B</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>44</th>\n",
       "      <td>180504501048</td>\n",
       "      <td>女</td>\n",
       "      <td>82.0</td>\n",
       "      <td>3.2</td>\n",
       "      <td>9.6</td>\n",
       "      <td>初修</td>\n",
       "      <td>B</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45</th>\n",
       "      <td>180504501049</td>\n",
       "      <td>男</td>\n",
       "      <td>89.0</td>\n",
       "      <td>3.9</td>\n",
       "      <td>11.7</td>\n",
       "      <td>初修</td>\n",
       "      <td>B</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>46</th>\n",
       "      <td>180504501050</td>\n",
       "      <td>女</td>\n",
       "      <td>87.0</td>\n",
       "      <td>3.7</td>\n",
       "      <td>11.1</td>\n",
       "      <td>初修</td>\n",
       "      <td>B</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>47</th>\n",
       "      <td>180504501051</td>\n",
       "      <td>男</td>\n",
       "      <td>67.0</td>\n",
       "      <td>1.7</td>\n",
       "      <td>5.1</td>\n",
       "      <td>初修</td>\n",
       "      <td>D</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>48</th>\n",
       "      <td>180504501052</td>\n",
       "      <td>女</td>\n",
       "      <td>90.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>初修</td>\n",
       "      <td>A</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>49</th>\n",
       "      <td>180504501053</td>\n",
       "      <td>男</td>\n",
       "      <td>79.0</td>\n",
       "      <td>2.9</td>\n",
       "      <td>8.7</td>\n",
       "      <td>初修</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50</th>\n",
       "      <td>180504501055</td>\n",
       "      <td>男</td>\n",
       "      <td>86.0</td>\n",
       "      <td>3.6</td>\n",
       "      <td>10.8</td>\n",
       "      <td>初修</td>\n",
       "      <td>B</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>51</th>\n",
       "      <td>180504501056</td>\n",
       "      <td>男</td>\n",
       "      <td>74.0</td>\n",
       "      <td>2.4</td>\n",
       "      <td>7.2</td>\n",
       "      <td>初修</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>52</th>\n",
       "      <td>180504501057</td>\n",
       "      <td>男</td>\n",
       "      <td>82.0</td>\n",
       "      <td>3.2</td>\n",
       "      <td>9.6</td>\n",
       "      <td>初修</td>\n",
       "      <td>B</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>53</th>\n",
       "      <td>180504501058</td>\n",
       "      <td>男</td>\n",
       "      <td>73.0</td>\n",
       "      <td>2.3</td>\n",
       "      <td>6.9</td>\n",
       "      <td>初修</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>54</th>\n",
       "      <td>180504501059</td>\n",
       "      <td>女</td>\n",
       "      <td>72.0</td>\n",
       "      <td>2.2</td>\n",
       "      <td>6.6</td>\n",
       "      <td>初修</td>\n",
       "      <td>C</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               学号  性别    成绩   绩点  学分绩点 修读性质 备注\n",
       "0    180504501001   男  69.0  1.9   5.7   初修  D\n",
       "1    180504501002   男  84.0  3.4  10.2   初修  B\n",
       "2    180504501003   男  82.0  3.2   9.6   初修  B\n",
       "3    180504501004   女  86.0  3.6  10.8   初修  B\n",
       "4    180504501005   男  77.0  2.7   8.1   初修  C\n",
       "5    180504501006   女  69.0  1.9   5.7   初修  D\n",
       "6    180504501007   男  84.0  3.4  10.2   初修  B\n",
       "7    180504501008   男  84.0  3.4  10.2   初修  B\n",
       "8    180504501009   男  75.0  2.5   7.5   初修  C\n",
       "9    180504501010   男  83.0  3.3   9.9   初修  B\n",
       "10   180504501011   男  81.0  3.1   9.3   初修  B\n",
       "11   180504501013   男  90.0  4.0  12.0   初修  A\n",
       "12   180504501014   男  87.0  3.7  11.1   初修  B\n",
       "13   180504501015   男  83.0  3.3   9.9   初修  B\n",
       "14   180504501016   男  86.0  3.6  10.8   初修  B\n",
       "15   180504501017   女  93.0  4.3  12.9   初修  A\n",
       "16   180504501018   男  91.0  4.1  12.3   初修  A\n",
       "17   180504501019   女  85.0  3.5  10.5   初修  B\n",
       "18   180504501021   男  94.0  4.4  13.2   初修  A\n",
       "19   180504501022   女  88.0  3.8  11.4   初修  B\n",
       "20   180504501023   男  69.0  1.9   5.7   初修  D\n",
       "21   180504501024   男  69.0  1.9   5.7   初修  D\n",
       "22   180504501025   女  89.0  3.9  11.7   初修  B\n",
       "23   180504501026   男  85.0  3.5  10.5   初修  B\n",
       "24   180504501027   女  70.0  2.0   6.0   初修  C\n",
       "25   180504501028   男  85.0  3.5  10.5   初修  B\n",
       "26   180504501029   女  89.0  3.9  11.7   初修  B\n",
       "27   180504501030   女  79.0  2.9   8.7   初修  C\n",
       "28   180504501031   男  89.0  3.9  11.7   初修  B\n",
       "29   180504501032   男  69.0  1.9   5.7   初修  D\n",
       "30   180504501033   女  83.0  3.3   9.9   初修  B\n",
       "31   180504501034   女  88.0  3.8  11.4   初修  B\n",
       "32   180504501035   男  86.0  3.6  10.8   初修  B\n",
       "33   180504501036   男  80.0  3.0   9.0   初修  B\n",
       "34   180504501037   男  83.0  3.3   9.9   初修  B\n",
       "35   180504501038   男  69.0  1.9   5.7   初修  D\n",
       "36   180504501039   男  84.0  3.4  10.2   初修  B\n",
       "37   180504501041   男  80.0  3.0   9.0   初修  B\n",
       "38   180504501042   男  82.0  3.2   9.6   初修  B\n",
       "39   180504501043   女  95.0  4.5  13.5   初修  A\n",
       "40   180504501044   女  82.0  3.2   9.6   初修  B\n",
       "41   180504501045   男  69.0  1.9   5.7   初修  D\n",
       "42   180504501046   男  80.0  3.0   9.0   初修  B\n",
       "43   180504501047   男  84.0  3.4  10.2   初修  B\n",
       "44   180504501048   女  82.0  3.2   9.6   初修  B\n",
       "45   180504501049   男  89.0  3.9  11.7   初修  B\n",
       "46   180504501050   女  87.0  3.7  11.1   初修  B\n",
       "47   180504501051   男  67.0  1.7   5.1   初修  D\n",
       "48   180504501052   女  90.0  4.0  12.0   初修  A\n",
       "49   180504501053   男  79.0  2.9   8.7   初修  C\n",
       "50   180504501055   男  86.0  3.6  10.8   初修  B\n",
       "51   180504501056   男  74.0  2.4   7.2   初修  C\n",
       "52   180504501057   男  82.0  3.2   9.6   初修  B\n",
       "53   180504501058   男  73.0  2.3   6.9   初修  C\n",
       "54   180504501059   女  72.0  2.2   6.6   初修  C"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "for i in data.index:\n",
    "    if data[\"成绩\"][i] >= 90:\n",
    "        data[\"备注\"][i] = \"A\"\n",
    "    elif data[\"成绩\"][i] >= 80:\n",
    "        data[\"备注\"][i] = \"B\"\n",
    "    elif data[\"成绩\"][i] >= 70:\n",
    "        data[\"备注\"][i] = \"C\"\n",
    "    else:\n",
    "        data[\"备注\"][i] = \"D\"\n",
    "data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "id": "972d595b",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "18 37\n"
     ]
    }
   ],
   "source": [
    "path = r'C:\\Users\\Administrator\\Desktop\\数据挖掘\\期末综合实验任务\\数据挖掘成绩.csv'\n",
    "# data.to_csv(path, encoding=\"utf_8_sig\")  # 将DF保存为CSV\n",
    "with open(path, \"r\", encoding=\"utf-8\") as file:\n",
    "    reader = csv.DictReader(file)\n",
    "    data = [row for row in reader]\n",
    "# 分组\n",
    "data = shuffle(data)            # 打乱顺序\n",
    "# print(data)\n",
    "n = len(data)//3            # 分3组 （1组测试，2组）\n",
    "test_set = data[0:n]        # 第1组测试\n",
    "train_set = data[n:]        # 其余2组训练\n",
    "print(len(test_set),len(train_set))    # 18条"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "id": "33797de1",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 计算欧几里得距离\n",
    "def distance(d1, d2):\n",
    "    res = 0\n",
    "    # 计算 成绩、绩点、学分绩点 3列的欧氏距离\n",
    "    for key in [\"成绩\", \"绩点\", \"学分绩点\"]:\n",
    "        res += (float(d1[key]) - float(d2[key]))**2\n",
    "    return res**0.5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "id": "6f65476d",
   "metadata": {},
   "outputs": [],
   "source": [
    "k=4\n",
    "def knn(data):\n",
    "    # 距离\n",
    "    res = [\n",
    "        {\"result\": train[\"备注\"], \"distance\": distance(data, train)}\n",
    "        for train in train_set\n",
    "    ]\n",
    "    # print(res)\n",
    "    # 排序（升）\n",
    "    res = sorted(res, key=lambda item: item[\"distance\"])\n",
    "    # print(res)\n",
    "\n",
    "    # 取前K项\n",
    "#     res = res[0:k]\n",
    "\n",
    "    # 加权平均\n",
    "    result = {\"A\": 0, \"B\": 0, \"C\": 0, \"D\": 0}\n",
    "        # 总距离\n",
    "    sum=0\n",
    "    for r in res:\n",
    "        sum += r[\"distance\"]\n",
    "    # print(sum)\n",
    "    for r in res:\n",
    "        result[r[\"result\"]] += 1-r[\"distance\"]/sum\n",
    "    # print(sum)\n",
    "\n",
    "    max_result = max(result, key=lambda x: result[x])\n",
    "\n",
    "\n",
    "    return max_result"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "id": "af8f4232",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "测试条数： 18\n",
      "正确条数： 11\n",
      "正确率：： 0.6111111111111112\n"
     ]
    }
   ],
   "source": [
    "# 测试阶段\n",
    "correct = 0\n",
    "for test in test_set:\n",
    "    result = test[\"备注\"]\n",
    "    # print(result)\n",
    "    result2 = knn(test)\n",
    "    if result == result2:\n",
    "        correct += 1\n",
    "\n",
    "print(\"\\n测试条数：\", len(test_set))\n",
    "print(\"正确条数：\", correct)\n",
    "print(\"正确率：：\", correct/len(test_set))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "id": "e3b2933d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "测试条数： 37\n",
      "正确条数： 22\n",
      "正确率：： 0.5945945945945946\n"
     ]
    }
   ],
   "source": [
    "# 训练阶段\n",
    "correct = 0\n",
    "for test in train_set:\n",
    "    result = test[\"备注\"]\n",
    "    result2 = knn(test)\n",
    "    if result == result2:\n",
    "        correct += 1\n",
    "\n",
    "print(\"测试条数：\", len(train_set))\n",
    "print(\"正确条数：\", correct)\n",
    "print(\"正确率：：\", correct/len(train_set))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "a25b7d6e",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "b1555522",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "06aa7506",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "13ff992b",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "id": "b778f084",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "from matplotlib import pyplot as plt\n",
    "from sklearn.cluster import KMeans\n",
    "plt.rcParams[\"font.sans-serif\"] = [\"SimHei\"]\n",
    "plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "id": "50630b44",
   "metadata": {},
   "outputs": [],
   "source": [
    "df_1 = pd.read_excel(r'C:\\Users\\Administrator\\Desktop\\数据挖掘\\期末综合实验任务\\数据挖掘成绩.xlsx',\n",
    "                   usecols=[i for i in range(0,7)],     \n",
    "                   skiprows=range(0,4),                   \n",
    "                   nrows=41)                             \n",
    "\n",
    "df_2 = pd.read_excel(r'C:\\Users\\Administrator\\Desktop\\数据挖掘\\期末综合实验任务\\数据挖掘成绩.xlsx',\n",
    "                   usecols=[i for i in range(0,7)],\n",
    "                   skiprows=range(0,52),                   \n",
    "                   nrows=14)                               \n",
    "\n",
    "df_3 = pd.read_excel(r'C:\\Users\\Administrator\\Desktop\\数据挖掘\\期末综合实验任务\\数据挖掘-汇总-数据表.xlsx',\n",
    "                   usecols=[i for i in range(2,3)],  \n",
    "                   skiprows=range(0,1),                    \n",
    "                   nrows=55)                             "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "id": "3cf656e7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>学号</th>\n",
       "      <th>性别</th>\n",
       "      <th>成绩</th>\n",
       "      <th>绩点</th>\n",
       "      <th>学分绩点</th>\n",
       "      <th>修读性质</th>\n",
       "      <th>备注</th>\n",
       "      <th>签到次数（开课13次）</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>180504501001</td>\n",
       "      <td>男</td>\n",
       "      <td>69.00</td>\n",
       "      <td>1.9</td>\n",
       "      <td>5.70</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>180504501002</td>\n",
       "      <td>男</td>\n",
       "      <td>84.00</td>\n",
       "      <td>3.4</td>\n",
       "      <td>10.20</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>180504501003</td>\n",
       "      <td>男</td>\n",
       "      <td>82.00</td>\n",
       "      <td>3.2</td>\n",
       "      <td>9.60</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>180504501004</td>\n",
       "      <td>女</td>\n",
       "      <td>86.00</td>\n",
       "      <td>3.6</td>\n",
       "      <td>10.80</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>180504501005</td>\n",
       "      <td>男</td>\n",
       "      <td>77.00</td>\n",
       "      <td>2.7</td>\n",
       "      <td>8.10</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>180504501006</td>\n",
       "      <td>女</td>\n",
       "      <td>69.00</td>\n",
       "      <td>1.9</td>\n",
       "      <td>5.70</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>180504501007</td>\n",
       "      <td>男</td>\n",
       "      <td>84.00</td>\n",
       "      <td>3.4</td>\n",
       "      <td>10.20</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>180504501008</td>\n",
       "      <td>男</td>\n",
       "      <td>84.00</td>\n",
       "      <td>3.4</td>\n",
       "      <td>10.20</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>180504501009</td>\n",
       "      <td>男</td>\n",
       "      <td>75.00</td>\n",
       "      <td>2.5</td>\n",
       "      <td>7.50</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>180504501010</td>\n",
       "      <td>男</td>\n",
       "      <td>83.00</td>\n",
       "      <td>3.3</td>\n",
       "      <td>9.90</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>180504501011</td>\n",
       "      <td>男</td>\n",
       "      <td>81.00</td>\n",
       "      <td>3.1</td>\n",
       "      <td>9.30</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>180504501013</td>\n",
       "      <td>男</td>\n",
       "      <td>90.00</td>\n",
       "      <td>4.0</td>\n",
       "      <td>12.00</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>180504501014</td>\n",
       "      <td>男</td>\n",
       "      <td>87.00</td>\n",
       "      <td>3.7</td>\n",
       "      <td>11.10</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>180504501015</td>\n",
       "      <td>男</td>\n",
       "      <td>83.00</td>\n",
       "      <td>3.3</td>\n",
       "      <td>9.90</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>180504501016</td>\n",
       "      <td>男</td>\n",
       "      <td>86.00</td>\n",
       "      <td>3.6</td>\n",
       "      <td>10.80</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>180504501017</td>\n",
       "      <td>女</td>\n",
       "      <td>93.00</td>\n",
       "      <td>4.3</td>\n",
       "      <td>12.90</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>180504501018</td>\n",
       "      <td>男</td>\n",
       "      <td>91.00</td>\n",
       "      <td>4.1</td>\n",
       "      <td>12.30</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>180504501019</td>\n",
       "      <td>女</td>\n",
       "      <td>85.00</td>\n",
       "      <td>3.5</td>\n",
       "      <td>10.50</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>180504501021</td>\n",
       "      <td>男</td>\n",
       "      <td>94.00</td>\n",
       "      <td>4.4</td>\n",
       "      <td>13.20</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>180504501022</td>\n",
       "      <td>女</td>\n",
       "      <td>88.00</td>\n",
       "      <td>3.8</td>\n",
       "      <td>11.40</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>180504501023</td>\n",
       "      <td>男</td>\n",
       "      <td>69.00</td>\n",
       "      <td>1.9</td>\n",
       "      <td>5.70</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>180504501024</td>\n",
       "      <td>男</td>\n",
       "      <td>69.00</td>\n",
       "      <td>1.9</td>\n",
       "      <td>5.70</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>180504501025</td>\n",
       "      <td>女</td>\n",
       "      <td>89.00</td>\n",
       "      <td>3.9</td>\n",
       "      <td>11.70</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>180504501026</td>\n",
       "      <td>男</td>\n",
       "      <td>85.00</td>\n",
       "      <td>3.5</td>\n",
       "      <td>10.50</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>180504501027</td>\n",
       "      <td>女</td>\n",
       "      <td>70.00</td>\n",
       "      <td>2.0</td>\n",
       "      <td>6.00</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>180504501028</td>\n",
       "      <td>男</td>\n",
       "      <td>85.00</td>\n",
       "      <td>3.5</td>\n",
       "      <td>10.50</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>180504501029</td>\n",
       "      <td>女</td>\n",
       "      <td>89.00</td>\n",
       "      <td>3.9</td>\n",
       "      <td>11.70</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>180504501030</td>\n",
       "      <td>女</td>\n",
       "      <td>79.00</td>\n",
       "      <td>2.9</td>\n",
       "      <td>8.70</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>180504501031</td>\n",
       "      <td>男</td>\n",
       "      <td>89.00</td>\n",
       "      <td>3.9</td>\n",
       "      <td>11.70</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>180504501032</td>\n",
       "      <td>男</td>\n",
       "      <td>69.00</td>\n",
       "      <td>1.9</td>\n",
       "      <td>5.70</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>180504501033</td>\n",
       "      <td>女</td>\n",
       "      <td>83.00</td>\n",
       "      <td>3.3</td>\n",
       "      <td>9.90</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>180504501034</td>\n",
       "      <td>女</td>\n",
       "      <td>88.00</td>\n",
       "      <td>3.8</td>\n",
       "      <td>11.40</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>180504501035</td>\n",
       "      <td>男</td>\n",
       "      <td>86.00</td>\n",
       "      <td>3.6</td>\n",
       "      <td>10.80</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>33</th>\n",
       "      <td>180504501036</td>\n",
       "      <td>男</td>\n",
       "      <td>80.00</td>\n",
       "      <td>3.0</td>\n",
       "      <td>9.00</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>34</th>\n",
       "      <td>180504501037</td>\n",
       "      <td>男</td>\n",
       "      <td>83.00</td>\n",
       "      <td>3.3</td>\n",
       "      <td>9.90</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>35</th>\n",
       "      <td>180504501038</td>\n",
       "      <td>男</td>\n",
       "      <td>69.00</td>\n",
       "      <td>1.9</td>\n",
       "      <td>5.70</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>36</th>\n",
       "      <td>180504501039</td>\n",
       "      <td>男</td>\n",
       "      <td>84.00</td>\n",
       "      <td>3.4</td>\n",
       "      <td>10.20</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>37</th>\n",
       "      <td>180504501041</td>\n",
       "      <td>男</td>\n",
       "      <td>80.00</td>\n",
       "      <td>3.0</td>\n",
       "      <td>9.00</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>38</th>\n",
       "      <td>180504501042</td>\n",
       "      <td>男</td>\n",
       "      <td>82.00</td>\n",
       "      <td>3.2</td>\n",
       "      <td>9.60</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>39</th>\n",
       "      <td>180504501043</td>\n",
       "      <td>女</td>\n",
       "      <td>95.00</td>\n",
       "      <td>4.5</td>\n",
       "      <td>13.50</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>40</th>\n",
       "      <td>180504501044</td>\n",
       "      <td>女</td>\n",
       "      <td>82.00</td>\n",
       "      <td>3.2</td>\n",
       "      <td>9.60</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>41</th>\n",
       "      <td>180504501045</td>\n",
       "      <td>男</td>\n",
       "      <td>69.00</td>\n",
       "      <td>1.9</td>\n",
       "      <td>5.70</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>42</th>\n",
       "      <td>180504501046</td>\n",
       "      <td>男</td>\n",
       "      <td>80.00</td>\n",
       "      <td>3.0</td>\n",
       "      <td>9.00</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43</th>\n",
       "      <td>180504501047</td>\n",
       "      <td>男</td>\n",
       "      <td>84.00</td>\n",
       "      <td>3.4</td>\n",
       "      <td>10.20</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>44</th>\n",
       "      <td>180504501048</td>\n",
       "      <td>女</td>\n",
       "      <td>82.00</td>\n",
       "      <td>3.2</td>\n",
       "      <td>9.60</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45</th>\n",
       "      <td>180504501049</td>\n",
       "      <td>男</td>\n",
       "      <td>89.00</td>\n",
       "      <td>3.9</td>\n",
       "      <td>11.70</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>46</th>\n",
       "      <td>180504501050</td>\n",
       "      <td>女</td>\n",
       "      <td>87.00</td>\n",
       "      <td>3.7</td>\n",
       "      <td>11.10</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>47</th>\n",
       "      <td>180504501051</td>\n",
       "      <td>男</td>\n",
       "      <td>67.00</td>\n",
       "      <td>1.7</td>\n",
       "      <td>5.10</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>48</th>\n",
       "      <td>180504501052</td>\n",
       "      <td>女</td>\n",
       "      <td>90.00</td>\n",
       "      <td>4.0</td>\n",
       "      <td>12.00</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>49</th>\n",
       "      <td>180504501053</td>\n",
       "      <td>男</td>\n",
       "      <td>79.00</td>\n",
       "      <td>2.9</td>\n",
       "      <td>8.70</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50</th>\n",
       "      <td>180504501055</td>\n",
       "      <td>男</td>\n",
       "      <td>86.00</td>\n",
       "      <td>3.6</td>\n",
       "      <td>10.80</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>51</th>\n",
       "      <td>180504501056</td>\n",
       "      <td>男</td>\n",
       "      <td>74.00</td>\n",
       "      <td>2.4</td>\n",
       "      <td>7.20</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>52</th>\n",
       "      <td>180504501057</td>\n",
       "      <td>男</td>\n",
       "      <td>82.00</td>\n",
       "      <td>3.2</td>\n",
       "      <td>9.60</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>53</th>\n",
       "      <td>180504501058</td>\n",
       "      <td>男</td>\n",
       "      <td>73.00</td>\n",
       "      <td>2.3</td>\n",
       "      <td>6.90</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>54</th>\n",
       "      <td>180504501059</td>\n",
       "      <td>女</td>\n",
       "      <td>72.00</td>\n",
       "      <td>2.2</td>\n",
       "      <td>6.60</td>\n",
       "      <td>初修</td>\n",
       "      <td></td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               学号  性别      成绩    绩点    学分绩点 修读性质 备注  签到次数（开课13次）\n",
       "0    180504501001   男   69.00   1.9    5.70   初修               5\n",
       "1    180504501002   男   84.00   3.4   10.20   初修              12\n",
       "2    180504501003   男   82.00   3.2    9.60   初修              12\n",
       "3    180504501004   女   86.00   3.6   10.80   初修              11\n",
       "4    180504501005   男   77.00   2.7    8.10   初修               9\n",
       "5    180504501006   女   69.00   1.9    5.70   初修               6\n",
       "6    180504501007   男   84.00   3.4   10.20   初修              11\n",
       "7    180504501008   男   84.00   3.4   10.20   初修              12\n",
       "8    180504501009   男   75.00   2.5    7.50   初修              10\n",
       "9    180504501010   男   83.00   3.3    9.90   初修              12\n",
       "10   180504501011   男   81.00   3.1    9.30   初修              12\n",
       "11   180504501013   男   90.00   4.0   12.00   初修              11\n",
       "12   180504501014   男   87.00   3.7   11.10   初修               8\n",
       "13   180504501015   男   83.00   3.3    9.90   初修              11\n",
       "14   180504501016   男   86.00   3.6   10.80   初修              12\n",
       "15   180504501017   女   93.00   4.3   12.90   初修              12\n",
       "16   180504501018   男   91.00   4.1   12.30   初修              12\n",
       "17   180504501019   女   85.00   3.5   10.50   初修              12\n",
       "18   180504501021   男   94.00   4.4   13.20   初修              12\n",
       "19   180504501022   女   88.00   3.8   11.40   初修               9\n",
       "20   180504501023   男   69.00   1.9    5.70   初修               6\n",
       "21   180504501024   男   69.00   1.9    5.70   初修              12\n",
       "22   180504501025   女   89.00   3.9   11.70   初修              11\n",
       "23   180504501026   男   85.00   3.5   10.50   初修              12\n",
       "24   180504501027   女   70.00   2.0    6.00   初修               9\n",
       "25   180504501028   男   85.00   3.5   10.50   初修               8\n",
       "26   180504501029   女   89.00   3.9   11.70   初修              11\n",
       "27   180504501030   女   79.00   2.9    8.70   初修              12\n",
       "28   180504501031   男   89.00   3.9   11.70   初修               5\n",
       "29   180504501032   男   69.00   1.9    5.70   初修              10\n",
       "30   180504501033   女   83.00   3.3    9.90   初修              12\n",
       "31   180504501034   女   88.00   3.8   11.40   初修              12\n",
       "32   180504501035   男   86.00   3.6   10.80   初修              11\n",
       "33   180504501036   男   80.00   3.0    9.00   初修              12\n",
       "34   180504501037   男   83.00   3.3    9.90   初修               4\n",
       "35   180504501038   男   69.00   1.9    5.70   初修              11\n",
       "36   180504501039   男   84.00   3.4   10.20   初修              12\n",
       "37   180504501041   男   80.00   3.0    9.00   初修              12\n",
       "38   180504501042   男   82.00   3.2    9.60   初修              12\n",
       "39   180504501043   女   95.00   4.5   13.50   初修              12\n",
       "40   180504501044   女   82.00   3.2    9.60   初修               5\n",
       "41   180504501045   男   69.00   1.9    5.70   初修              10\n",
       "42   180504501046   男   80.00   3.0    9.00   初修              12\n",
       "43   180504501047   男   84.00   3.4   10.20   初修              12\n",
       "44   180504501048   女   82.00   3.2    9.60   初修               8\n",
       "45   180504501049   男   89.00   3.9   11.70   初修               9\n",
       "46   180504501050   女   87.00   3.7   11.10   初修              12\n",
       "47   180504501051   男   67.00   1.7    5.10   初修              11\n",
       "48   180504501052   女   90.00   4.0   12.00   初修              12\n",
       "49   180504501053   男   79.00   2.9    8.70   初修              10\n",
       "50   180504501055   男   86.00   3.6   10.80   初修              11\n",
       "51   180504501056   男   74.00   2.4    7.20   初修              10\n",
       "52   180504501057   男   82.00   3.2    9.60   初修              12\n",
       "53   180504501058   男   73.00   2.3    6.90   初修               9\n",
       "54   180504501059   女   72.00   2.2    6.60   初修              11"
      ]
     },
     "execution_count": 75,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_12 = pd.concat([df_1, df_2], axis=0)\n",
    "data_12.index = range(len(data_12))\n",
    "data = pd.concat([data_12, df_3], axis=1)\n",
    "data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "id": "92c286c9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1, 0, 2, 0, 2, 1, 0, 0, 1, 0, 2, 3, 0, 0, 0, 3, 3, 0, 3, 3, 1, 1,\n",
       "       3, 0, 1, 0, 3, 2, 3, 1, 0, 3, 0, 2, 2, 1, 0, 2, 2, 3, 2, 1, 2, 0,\n",
       "       2, 3, 0, 1, 3, 2, 0, 1, 2, 1, 1])"
      ]
     },
     "execution_count": 76,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data[[\"成绩\",\"绩点\",\"学分绩点\",\"签到次数（开课13次）\"]] = data[[\"成绩\",\"绩点\",\"学分绩点\",\"签到次数（开课13次）\"]].astype(float)\n",
    "data = data[[\"成绩\",\"绩点\",\"学分绩点\",\"签到次数（开课13次）\"]]\n",
    "kmeans = KMeans(n_clusters=4, random_state=0).fit(data)\n",
    "kmeans.labels_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "id": "ecd8fb04",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Administrator\\AppData\\Local\\Temp/ipykernel_9628/1690966677.py:7: MatplotlibDeprecationWarning: Calling gca() with keyword arguments was deprecated in Matplotlib 3.4. Starting two minor releases later, gca() will take no keyword arguments. The gca() function should only be used to get the current axes, or if no axes exist, create new axes with default keyword arguments. To create a new axes with non-default arguments, use plt.axes() or plt.subplot().\n",
      "  ax = fig.gca(projection=\"3d\")\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkcAAAI+CAYAAAC2bq7+AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAEAAElEQVR4nOy9eZgkWV3v/T0RudeSWZm1dFV19b4v02v1sCnDMHDZFxG8CuKIKKJXFOVFFhWUUYSriN5XRLYXFfCyCALiMoDDzjDTPdNdS9e+71tmVlXumRHn/SPrxERG5Z4RmZFV5/M880x3dVZEZGRknG/8lu+PUErB4XA4HA6Hw0kj1PoAOBwOh8PhcMwEF0ccDofD4XA4Krg44nA4HA6Hw1HBxRGHw+FwOByOCi6OOBwOh8PhcFRwccThcPY1hBB7rY+Bw+GYCy6OOJw6hBDyPwkhnyCEPJsQ8nVCSPfOz12EkB8SQqya1z9ECHldnu15CSEBQkgLSfMIIaRN85o3EkL+oIhje2+Rr7MQQhYJIWd3/v5RQsibNK95OyHkfYW2lWP779g5FkIIec3Oz75ECLlMCDlPCLlOCOkCcLec7XM4nL2LpdYHwOFwyiICwEIp/e6OiPk1AO8B8EsAHqeUJgkhvwXgtTuvPwggRgj5Xzt//wtK6ZdU23s9gH+jlAYIIS8EsEkpXSOE/CyAt+28pg2AjRDykp2/f5ZS+n9yHN9vZxFj/0Up/W3V318CYIJSOkQIOQHgdQCeSQh5886/fw7AbwPYIoS8dOdncQAPAfg/AGwA2gHMq7b5NgCHKKUfYj+glFJCyOsJIex+ZwfwSQC/CeA5AH6Y4z1wOJx9CuEmkByOuSGE/B8ArwAgqX7sANAIYF31s/8GcA3A8wH8FIBhPPUA9JsApgD8O4AEpTQjWkIIGQDwG5TS7xFCvrvz+g6kxUgAgBXAKwH4AHwCACilt3Mc73sBpCilDxV4X98A8HkA/7xz7H8EwMdEGyHkNwE07xzzFqV0SvP7H0Q6+v0uADcopT/Y+XmIUtpICHkHAAel9L2EkMMAPAD+EGlh1Ukp/b+EkE8DOAzgJ2y7lNJ35DtuDoez9+GRIw7H/DQB+C1K6b+yHxBCng7gXZTSl6p+9vtIp4giAN4H4P6d/wNp0XQCwDGkBdU7VL/3DKSjUN8jhPwcgH4AQwD+EcDPIx2VcgM4DcCJtDADgDeW+4YIIT0A7gXwswDeAOAJAN8D8E1CSBjAOaSjXq8CcArA5wghz6aUru/8/iWkI0+9SAukjxFCXkUpHcqyr5cB+BOk73fnAVwEEN0RTP8TwJuQFoG/D+DL5b4nDoezd+A1RxxOfbKJtGABIcRBCPltAGcB/ALSaaa/RFrYzO/8t410BGge6fTaG1Tb+lUAH9/580UAzwKwiHTE5pk7vzu/8/tbbJuEkN/d2f91QkiEEDJMCBlGWnC8jv2dELJECPmo5vjfAOCfKaVRAJ8G8DZKqYR0eu8Xdvb73p1jCCOdcvPv7M8L4D+RFoLvA/AppFNsH8l2oiilXwPw4M57GkE6gvYQgG4AIoAfU0r/787L/yHr2eZwOPsKnlbjcEwOIeSzSNfGRAC4AHwLwO8A+Aml9OROjc79lNJXE0IuAPgggBcDuI50fU02Niml/YSQZgDTAE6pojIHAHwB6fTcSeyIsCzEKaWPE0KuI13DdF+O438QwNMopb++83cBaYHyEkppv+p1rwHwx0gLtb/aqRW6COCzSEeWPsAiQztiMIR0SmwcwH/svO93AxhVp9UAzCAtxn4H6UjVZwD8IoDvA3g20im1rwGYQzrdxm+KHM4+h6fVOBzz0wzgtZTSRwghLwfwQkqpnxDSvBNFeTuAFxBC3AD+HunoyxkAA0hHWwZV27ICWKOUPrDz99cCeFgljGxIR0/ehnQR9xyAr+5sR42bUnqyzPfzPwAsMWFECHkOgL9COp33lZ3jfz0hhL0+CeDHAP6FEDIH4AWU0r/e+d2HADRTStcA/PLOz7T7+2eko1MPAVillA5iJ61ICKEAXgMgCOAmF0YcDgfg4ojDqQdOAFja+XMz0ik1IC0mvgbgY5TSEULI+5Gu1fkCgAkAvwJghlJ6nRDyxwC+gXRq6dOqbf8qnupGA9IC41kAPoZ0dOd3kS7gvk4I+TWkhdVXdtJnam5k+RnDjbTAUu/zY6q/DwJ4NYALAL5KKX0XIeSXd/b1bwCwk8J7AAAF8IydaBqQLrKWCCHsPTwty/4f3HkfnQAmCCG/hHT91CmkC8H/Dumut8/nOH4Oh7PP4OKIwzExO236HQBGd350HsDqzp/nAVwB8AFCSMPO63yUUln1++yPz0Q6KqPe9jWkxdYjqh9/GsAnKaWpLNu4AeDfshzmGoBfpZR+lhDio5Ru7ESgDlBKZwkhl5EWbSxl92yk01oAAErpKoDVHeuBA0iLlQkAbwHwbzvH+ToAf7NzXEsAjuxs7yEAy5TS/zfL8bLtf5QQchXABqX0nYSQpwH4c0rp3M7r/2Vn+6/M8t44HM4+hIsjDsfcvAHp6NCbdlrkYwB+hhDyGaS72FxIR3vWABwC8FJCyD0AriLdsv79nW60o0i34P8lnhJDvwrg45pUUjOA66ptfG1nG8eQjtxc2hFi31D9zlsBzBJCWgA8SQg5CuAeAH8D4BlI1y39CtK+RQ8C+AKlNJzlvb4X6a60jyLtPfS8nfqkvwHwK0ywEUI6ka418iItus4SQtqR9mH6KKW0cWd73QBWdv78AQB/QAj5/s55es7Otk4jXUCeRDqdxwrTORzOPoaLIw7H3Pw0gLdSSkcJIR/dKVL+YwDfopR+mhByBOkF/TLSnVsvAfA40vU1AtIdZh8F8NKdP38SwBpJO2q/GjsRHRX37bz2caTrgKJIC6tvIB3tuYO06GojhBxCOtLzKgDnKaVbO6m1F1JK/40Q4iSEXAHwLwDeTQh5NdLt/69R73DHpfph1Y/6VX/+n0iLnH/aiQh9Heni7FcinSL8/s7/F3b+P0cI+SqAFyLd5faiHfPHwwAakC7i/iGAzxJC3ol0cfbvAbgF4HuEkDMA3kEpTeb8RDgczp6Hd6txOCaGECLutLiX+nudSKfIvgzg05TSuOrffgOARCn9+wLbcAL4EtKRpo9RSrdU//YqpFN8gwBilNJv7Pz8PgAhSunNHS+mKUrpMiHkfgBdlNLPlPpeykF93kjaFfwG0ufhv3d+5kU6kva3lNJv7/zsENLF7W9RpyY5HM7+g4sjDofD4XA4HBXcBJLD4XA4HA5HBRdHHA6Hw+FwOCq4OOJwOBwOh8NRUahbjRckcTgcDofDqTa7rO6rCY8ccTgcDofD4ajg4ojD4XA4HA5HBRdHHA6Hw+FwOCq4OOJwOBwOh8NRwcURh8PhcDgcjgoujjgcDofD4XBUcHHE4XA4HA6Ho4KLIw6Hw+FwOBwVXBxxOBwOh8PhqODiiMPhcDgcDkcFF0ccDofD4XA4Krg44nA4HA6Hw1HBxRGHw+FwOByOCi6OOBwOh8PhcFRwccThcDgcDoejgosjDofD4XA4HBVcHHE4HA6Hw+Go4OKIw+FwOBwORwUXRxwOh8PhcDgquDjicDgcDofDUcHFEYfD4XA4HI4KLo44HA6Hw+FwVHBxxOFwOBwOh6OCiyMOh8PhcDgcFVwccTgcDofD4ajg4ojD4XA4HA5HBRdHHA6Hw+FwOCq4OOJwOBwOh8NRwcURh8PhcDgcjgoujjgcDofD4XBUcHHE4XA4HA6Ho4KLIw6Hw+FwOBwVXBxxOBwOh8PhqODiiMPhcDgcDkcFF0ccDofD4XA4Krg44nA4HA6Hw1HBxRGHw+FwOByOCi6OOBwOh8PhcFRwccThcDgcDoejgosjDofD4XA4HBVcHHE4NYRSCkmSQCmt9aFwOBwOZwdLrQ+Aw9mvUEqRSCQQjUZBCIHVaoXFYoEoihAEAYSQWh8ih8Ph7EtIgSdW/jjL4RiAJElIJpOglCKZTAIAZFlWIkiCIMBqtcJqtUIURRBCuFjicDj7iZre8Lg44nCqCKUUqVQKqVRKETuJRGKX8KGUKmKJEAJBEGCxWLhY4nA4+wUujjic/YAsy0gmk5BlWRE3LLWWT+iw76gsy8rPtGJJEHj5IIfD2VNwccTh7GVY0TVLn6mjPsWIo2zbA7hY4nA4exoujjicvQqrKZIkKWsqrBxxlG0f7D8Gq1lSF3hzOBxOHcHFEYezF5FlGYlEQqkbyiaA9BBH2bbJxRKHw6lzuDjicPYS6jRaocJpI8RRtn2oxRKlNCMFZ7FYeHE3h8MxG1wccTh7BUoptra2sLi4iKNHjxYUHdUQR9n2qY0siaKYEVniYonD4dSYmt6EuAkkh6MTLI2WSqWwublpWoGhjWYx24BYLKb8jIslDoezn+HiiMOpEK13kSiKtT6kkuBiicPhcDLh4ojDqYBs3kWEkIw2+3ojl1hiY04AIBKJwOv1crHE4XD2JFwccThlkM+7aK8JBfbeWIcbpRRDQ0O4evWq8l4tFovyHxdLHA6n3uHiiMMpEW0aTSsESo0c1ZuQYO/ZYknfPrTdeQCUbjiLxcKH6HI4nLqDiyMOpwSypdG0lCIENjc3MTExgcbGRrS0tKC5ubnuPIiyRZYkSUIqlVI8nrhY4nA49QQXRxxOEWjTaPkETDGRI0opZmZmsLS0hJMnTyIWi2FlZQVjY2OwWCxoaWlBS0sLmpqa6lYsMdRiif27Og3HxRKHwzEbXBxxOAUoNAJES6F/TyQS6O/vh8vlwo0bNyBJEpqbm9He3g4AiMfjCAQCWFxcxPb2Nux2uyKWGhsb605IZBNLqVQqo16LiyUOh2MmuDjicPJQzAgQLfkiR36/H0NDQzh58iTa29sVoaDert1ux4EDB3DgwAEAQDQaRSAQwNzcHLa3t+FyueDxeNDS0oKGhoa6ExLZxFIymdwlltRDdOvtPXI4nPqGiyMOJwvaoutSUlu5ZqhNTEzA7/fj6tWrcDqdRW/P6XTC6XSiq6sLlFJFLE1PTyMcDqOhoUGJLDmdzroTElpvqGxiSTsXrt7eI4fDqS+4OOJwNLCRHvmKrvNBCMkYzRGLxdDf3w+Px4Pr169XVENECIHL5YLL5UJ3dzcopQiHwwgEApiYmEA0GlWKuz0eT0kizCxkE0uJRALxeBxA5hBdNheOiyUOh6MnXBxxOCpYtKiUNFo+1tbWMDo6ijNnzsDn8+V8HdtfqRBC0NjYiMbGRvT09IBSilAohEAggNHRUcTjcTQ1NSmRJbvdXsnbqQn5xBL7jKxWq5KG42KJw+FUChdHHA4qS6Pl2t7w8DBCoRCuX7+eU5SwhbzAAOiiIYSgqakJTU1NOHToEGRZxvb2NgKBAO7evYtkMgm3261Elmw2my77rSZqscTOWyKRQCKRAJCOLGlrljgcDqcUuDji7HuK8S4qhUgkgkgkgq6uLpw+fbqmUQxBEOB2u+F2u3HkyBHIsoytrS0EAgHMz89DkqQMsWS1Wmt2rOXAzi0XSxwOR0+4OOLsW0rxLiqW5eVlTExMwG634+jRoxVvT28EQYDH44HH48HRo0chSRI2NzcRCAQwOzsLSqnSCed2uxUX7Hohm1hiabhgMIjNzU10d3fvKvDmcDgcNfV15+NwdKJU76JCSJKE4eFhJBIJ3LhxA48//rhOR2osoijC6/XC6/UCSNdcMbE0NTUFQkiGWNLW/pi9tkf92cqyjHA4DEop4vF41gJvLpY4HA7AxRFnH1KOd1E+QqEQ+vv70d3djZ6eHtMLhnxYLBb4fD6leDyZTCIYDGJ9fR0TExMQRREtLS1IpVKQZTlDLNULavHDIktqsSSKopKCY91wHA5nf8HFEWffYETR9cLCAmZnZ3Hx4kU0NTXpdKTmwWq1oq2tDW1tbQDStTyBQACpVAq3bt2CzWaDx+OB1+tFY2OjqaMu2SJd2QwpZVlGLBZTXs/EEosscbHE4ex9uDji7Asq9S7SkkqlMDg4CEEQcOPGjbqrzSkXm82Gjo4OzM7O4vr164pYWlhY2LOjTphYYnCxxOHsffbHHZ2zr5EkCZOTk/D5fHC5XBUvZpubmxgcHMSRI0fQ1dWl01HWH5TSnKNOZmdnEQqF4HK5FLGkx7mv9HjLMfTkYonD2X9wccTZs6jTaJubm3C73RUtXJRSzMzMYGlpCZcuXUJDQ4OOR1tf5DqPuUadTE1N7ZlRJ9nEUjQazeiU42KJw6lvuDji7Em03kWCIFRktJhIJDAwMACn04l7773X1LU1ZiHfqJPx8XHEYjFl1ElLSwscDketD7lkmFhi10M2scTGnHCxxOHUD1wccfYUWu8itnhV4kLt9/sxNDSEkydPor29Xc/D3VdkG3Wyvb2NYDCIkZERw0edVMN6IJtYYtejWiyxbjguljgcc8LFEWfPkM+7SBAEyLJc8vYmJiawsbGBq1evGjbEVc/xIfUEIQTNzc1obm7OOuoklUqhublZEUv15t4N5BZLqVRKeQ0TSxaLBYIgcLHE4ZgALo44e4JC3kWlCpBYLIb+/n54PB709vbyNFoVyDbqhBlSslEnzJDS4/HUZYdgtpoltVgihGSk4bhY4nBqQ/3dXTgcFdq0RS4RU0rkaG1tDaOjozhz5oxihljuse3lhc3oaJcgCErUCEDGqJOZmZmMUScej6egIaUZP49sYimVSmWkhblY4nCqDxdHnLqlFO+iYiJHsixjbGwM29vbuH79ekU1L2x/e3Uhq8X7yjbqJBgMwu/3K6NOmJhqbm6uS/fubGIpmUzi5s2buHTpEhdLHE6V4OKIU5eUOgKkkDiKRCLo7+9He3s7rl27VvGCs1/riKqJxWJBa2srWltbATw16mRtbQ3j4+OwWCxKZKm5ubkuPw/m0C1JEkRRVMSSOrKknQvHxRKHUzlcHHHqinJHgORLqy0vL2NiYgLnz5+Hx+PR5Ti5OKo+uUadLC8vY3R0VHnN1tYWmpqa6lJEMLHEYNHTeDyuPCQwscTmwtXj++Rwag0XR5y6QetdVMpNP5tYkSQJw8PDSCQSuHHjhq7dUKWIo+3tbQiCAJfLpdv+OU+NOuno6AAALC4uYn19HfPz8wiFQnA4HEq9Uj2OOgHyiyUg/VBgtVoV6wAuljic4uDiiGN6cnkXlYJWrIRCIfT396O7uxs9PT26LxjF1jiNj48jEAhAEATDfX70pt4iY1arFU1NTTh69CgopYjFYqYddVIuarHEPp9EIoFEIgEgLZbUPku8C5PDyQ4XRxxTo02jlbtgsbQapRQLCwuYnZ3FxYsX0dTUpPMRpykkjmKxGPr6+uDz+XDlyhVQShVTRLXPj9vtVqIbZvL5qUfhoIYQsmvUSSQSQSAQwOTkJCKRiOLe7fF46nbUCQAuljicMuDiiGNaKkmjaSGEIJlMoq+vD4Ig4MaNG4b65OQTR1qrgGQyCUrpLp8fdev67Oys0rru9XrhdrvrshvLrBBC0NDQgIaGBhw8eHDPjjoBuFjicIqBiyOO6dCm0fS4QcdiMczNzeH06dPo6uqqeHuFyCaOWBpta2urKKuAXK3rGxsbmJiYgCiKGa3rfCHLTynWCrlGnQQCAaVOTe3ebbPZDD56/ckmlljNklosabvhOJz9ABdHHFORbwRIudubmZnB4uIiOjs7qyKMgN3iSJ1G01oFFPseta3r2m4su92uLNb1WmBsVtSjTg4fPqyMOvH7/VhcXNxTo04YTCzF43GlwFsURSWqxLrhOJy9CBdHHNNQqndRIRKJBAYGBuB0OnHixAlEo1GdjrQwanHE0mhnz55VokB6oO3GikajWQuMvV6vITUz9VaQrSfqFCiQ7nzc2toyZNRJrc5zNrEkyzJisZjyMyaWWGSJiyXOXoGLI07NKde7KB9+vx9DQ0M4efIk2tvbsbq6WvLg2UoghECWZYyOjhadRquUXAXGExMTiEQiGZ1wldbM1OMiaKRjuTrFCaTFUjAYVEadAIDH41H+K6VezCxO61wscfYTXBxxakopI0CK3d7k5CQ2NjZw9epVOJ1OANU3ZZRlGf39/ejo6NDFcbtUshUYa2tmWCdcvaaBzIwoivD5fMpsPu2oE0EQMty784kls4gjLVwscfYyXBxxagaLFumVRovFYujv74fH48H169czIlDVFEdra2vY2NjA6dOn0dPTU9TvGL0AZquZUU+8l2U5wzagHifeF6KWIiPbqJNAIIDV1VVl1AkTqk1NTRnXrlnFkZZcYumHP/whrl69qngwcbHEqQf23h2QY3q00SI90mja9ngtLM1lJOrBtW1tbWhubjZ0f5WgnXifSqUUsTQ9PZ0xxNXtdvMuJZ2xWq1ob29He3s7ACAejyMQCGBpaQkjIyOw2WwZKdB6FBFMLLFhuUwsRaPRjE45LpY4ZoSLI05VYd5FP/zhD/GMZzyj4puhWpDkq+sRBMHQyFEsFsOdO3fQ2tqKa9eu4e7du3VVsGyxWDLSQOrIxtjYGKxWq1LczYwz6+n9AeY+XrvdjgMHDuDAgQMAoLh3z8/PY2trC8lkEnNzc2hpaUFDQ0NdiggmlJjQziaW2Ew4LpY4tYaLI05V0GMEiJZIJIL+/n60tbUVrOsxMq2WrRut3gfPZots+P1+zM/PY3t7G4lEAouLi2htba2rxbpejtPhcKCzsxOdnZ2IxWK4e/cuBEHAzMzMnhp1ohVLkiQhlUopr2GGlBaLBYIg1OX75NQnXBxxDCeXd1EltRTLy8uYmJjA+fPn4fF4Cr6ejQ/RE3XUqre3N8MIsN7FkRa73a4s1pRSPPHEEyCEYHp6GuFwOMM9mhXBc/SBpaW6u7vR3d2dd9RJPZ//bDVLarHEzgP7j4sljpFwccQxlFzeRUyslDoCQ5Ikpdvqxo0bRXdZ6S1WotEo+vr6ckat9po4UsMKazs7O3H48GFQShEKhRAIBDA6OqoM0PV6vaZyj67Xz4PV5jGydSKy8z82NrYnRp0A2cVSKpXKiD5zscQxCi6OOIZQyLuoHPEQCoXQ39+P7u5u9PT0lHQj1FOsFGPquJfFkRZCCJqamtDU1IRDhw5luEcvLCxAkqQM24BadsLV4+JZ6DrKdv6ZWNoro04ALpY41YWLI47uFONdVEqai1KKhYUFzM7O4uLFi0pBcCnokVbLl0bTUoo4qscbeL5jVrtHHz16dNcAXQCKxw8foFscpVwjgiDssm1g7t1s1InatqFePa6yiaVkMrlLLKmH6Nbjd41TG7g44ugKK7ou5F1UrFhJpVIYHByEIAi4ceNG2VGHSiM5hdJoeu+vHij2/WkH6CaTSQSDQayvr2NiYgIWiwUej0fphDPKNqBe/IK0VHrczHCS1eYxsRoMBjE7OwtKqWEeV9X8DrB0r3rfWrHEirvZXLh6vB441YGLI44ulDoCpBhxtLm5icHBQRw5cqTigbGViBXWzn7u3DnFF6iY/XGyY7Va0dbWhra2NgDpGXhsgOv29jYfoKtBb1GnFavZPK70iuzVUpBmE0uJREIZoisIAqxWqxJZ4mKJo4aLI07FMO+iUkaA5DNlpJRiZmYGS0tLuHTpEhoaGio+xnLSaiyNFgqFCqbRtFTDdHKvYLPZMjx+tAN0GxoaMjqx9tsCZrTAyOZxFQwGsbGxgYmJCYiimCGWSonsmSlapxZL7EGJiSX2QKdNw3H2L1wcccqmEu+iXKaMiUQCAwMDcDqduPfee3W7QZUaOVKn0djog1L3xykP7QDdcDiMQCCA8fHxjE4sr9db0jBfSmldLnjVFhjZInvBYLCoUSdaZFk25TlXO3QDmWIpkUgAABdL+xwujjhlkcu7qFiyRXL8fj+GhoZw8uRJxXxQL0oRR+Wk0bLtj0eOKocQgsbGRjQ2NqKnp0fpxPL7/bh79y6SyeSeH6Bb6+iLzWbLOupEmwb1eDxoamraVSRdDw8K+cTSE088gQsXLnCxtM/g4ohTMrm8i0pBLY4opZicnMT6+jquXr1qiIldMWk1WZYxOjqKcDhcchpNSz0sCJVQq4JzdSfWkSNHMgbozs3NgVKqpIA8Hs+e6IQzm8DQjjqJRqMIBoOKe7rT6VTEar2KCHa+CSFIJpNKpFsbWVLPhavH98nJDRdHnKJRp9EqHRjLIiuxWAz9/f3weDzo7e017AZTaDFXp9FOnz5d8WLEI0fVIdsA3WAwCL/fj6mpKaVTq6WlpSzTUTNgNnGkhaVBmXs6qxmbnp5GKBSCJElYWFioy5oxlhbMZhtAKUU8Ht9V4K3uhuPUL1wccYqiGO+iUhAEAcFgEMPDwzhz5oxSDGoU+Y5XjzRaKfvTIsuyaWsz6g2LxYLW1la0trYCyKyXWV9fh8ViQSKRUOpl6mEBM7s4UkMIgcvlgsvlQnd3N0KhECYmJkApxcTERN2NOsn1vSwkliilGSk4LpbqDy6OOAXRI42m3V4gEIAsy7h+/XpJRbV6omcaTUuxkaNwOIy+vj5IkgSr1aqM3KiXhdvsqOtl2EJstVqVFFA9DHCtJ3GUDavVioMHD+4adaIeNcM+g1rdC3JR7ENLNrHEIuMMURQz0nD1/JnuB7g44uSkVO+iYohEIujv74coijh8+HDNboYsjdbe3q5LGk1LMTU5y8vLmJycxLlz5+BwOJBMJuH3+zMWbiaWzJiOqEeTS2YboE4B+f3+XQNcvV6vaWaS1bM40oqLXKNmAoFARoE9S4XWetRJuRFdLpbqHy6OOFkpx7uoEMvLy5iYmMD58+cRCAR0OMryMCKNpiVf5EiWZYyMjCAWi6G3txeiKCKRSMBuz5x8H4lE4Pf7lRZ29oTt9XprvmjshRu5OgWkjWqMjIwgHo+bYiZZPYujQvYJ6lEzrMCejTrRzuWrxagTvdLducRSNBrN6JTjYsk8cHHEyaAS76JcSJKkDMC8ceMGrFYrgsFg1QuWKaUYHh42JI2mJdc5U0eszpw5k1NEEfLU5HXWws6esAcGBiBJUkZXVi2HudYLhURGtqiGdqGuxTmvZ3HEHq6KRT3qJNtcPtaNyP4z+jMwqoif3VeZ8OJiyXzwOypHQZtG0+PLGAqF0N/fj+7ubvT09Cjb1GMQbClEo1FEIhF0dXUZkkbTki2ttra2htHR0bIiVtonbEmSEAwGla4gtqh4vV40Nzfz4m4dyLVQ+/1+3cds5KPexVEl12I1R51kQ5KkqnyXihFLrAuOi6XqwMURB4D+aTRKKRYWFjA7O4uLFy+iqakp498FQYAkSRXto1hYGs1ut+Po0aNV2adaHMmyjPHxcWxtbekWsRJFMWPkA+vKWl5exujoqGLM5/V60dDQwG+kqFxkFDNAt1jn6Goedy3R+9hzjTphn4EoispnoMdDQq26SLOJJbWNCgClG85isSh2Axz94OJon6NNo+lxI0ilUhgcHIQgCLhx40bW0LcgCEilUhXvKx/abrSbN28auj81TBzF43H09fWhpaUF165dM+wGpnUxVnvNhMNhQ9qn67EgW0+0Yza0ztEOh0M555UI1HoWR0aLi1yjTlZWVjA6Ogqr1VqRYDWLxUYusZRKpZS6LnUajoulyuHiaB/DRoDcunULV65c0eXLtLm5icHBQRw5cgRdXV05X2e0SSLrijOqG60QhBBEIhHcvHmzKj5OWrLNJ/P7/Ur7dHNzs9IJV06RK7/x7iabc7RaoJY7QLeexVG1j73YUSctLS1obGwseGxmEUdashV4M7HE/l2dhuNiqXS4ONqnqL2LYrGYLmm0mZkZLC0t4dKlS2hoaMj7eiNrjlZWVjA+Pm5oN1o+KKVYXl6G3+/H0572tJq3hKvnk6kLjf1+f8bIDa/Xa2jtTK2p9kJdaIBusf4+9SyOai0ucgnW2dlZhEIhuFwupWYpW3Sv1sdfLNnEUiqVQjKZxNbWFgDA5/NxsVQCXBztM3J5F1VyA04kEhgYGIDT6cS9995b1M3ECHHEWuQjkUjO2h6jF5pEIqH4OHV2dtZcGGVDXWgMPDVyY2NjQ6nbUJtR1sPiYHayDdBV+/ukUqmcLeuF2uHNjNmEnVawForu1Ys40qIWS+FwGIQQNDc3Z3Qha4fomulzMgNcHO0jco0AYUMVy/lysJv7iRMn0NHRUfTvsX3qRSQSQV9fHzo6OpQWeS2sDsiom0AwGMTg4CBOnjwJURSxvr5e9O/W8sakHbmRrXaGiSWzukjXG9m6D1k0T92y3tLSUrWOKSMws7jQjjrRRvei0SgEQUBjYyO8Xq/pR53kQpIkOByOjIgwK6lQiyXtEN39/j3n4mifwKJF2UaAsM6xUm5ilFJMTk5ifX0dV69eLfnGoWfNEUujnT9/XomGZINFq/S+WVNKMTs7i6WlJVy5cgUulwt+v79uC5bVqYhsLtJNTU2IRqOIx+NwuVy1PtyiMVsUQ426ywrIHKC7uroKURQRj8d168KqFmY+51q00T1KKUZHRyFJUl2MOsmFJEm7UuWEkF1iKZFI5B2iWy+fo15wcbTHKWYESKkprlgshv7+frjdbvT29pZ1o9YjrcbSaNFotKgW+WJGepRKKpXCwMAAbDYbbty4oZwLI/ZVC7K5SG9vb2N4eFgZKMrSQS0tLdyMUifU0Ty73a4sVsyqwWazKdG8YgqLa4WZI0eFYNEUn8+H1tbWnKNOWCq01q71uSjmwTefWGLCyGq1Kmm4/SCW+J1sD1Osd1EpQoUZGVbagVWpOGJptAMHDuRMo2nRW7Bsb2+jv78fR48eRWdn565/3wviSAurXWhoaMCRI0fgcDgUU76ZmRkQQhSh5Ha763ZhNBOyLMNut6Ojo0NJXcdisV2FxWYcoFvP4gjIPP5so07YtT8/P1/zUSe5KMflWy2W2H0skUggkUjgkUcewfT0NN761rfqfqxmgoujPUip3kXFCBVZljE2Nobt7W1cv3694pByJTVHxabRsu1Tr1Te/Pw85ubmcM8996CxsTHrvvaiONKSyxiRGW/abDbFjLLWEY56SvFo0R63w+HYNYcvEAhkpD6ZWKplU0A9n3Mgv7gTBCEjFZpr1Al7UKhVVDVbWq0U1ONMAGB9fT1jgO5ehYujPQYrtJMkqejQZyHRwDyD2tradDMyLKfmSJ1GYzPaSt1npYJFkiTcvXsXlFLcuHEj701nP4gjLVpTPm2Eo1yvn/1MMTPh2Bw+9QBdv9+vzDRkvlbVTv/spchRIbKNOmF1Y1NTU1UbN6OlUnGkJRQKZX0g3GtwcbSHUHsXlZITFkUxp1BZXl7GxMSE7p5BpUZxykmjVbpPLWxOXE9PD7q7u/MeQymRo70sELJFOPx+f4bXD6udMXrRrlexWmr0RT1A9/DhwxkDdFn6p1oDdPdy5KgQ2i5Qo0ed5EJvgRqJRNDd3a3b9swKF0d7gGKKrvORbc6ZJEnKU2c5UZpi9lmsUCk3jaalksjR0tISpqamcOHCBTQ3Nxf1O/W6GBdLqe9PHeFQe/34/f6MqffMjNKIRbseF+pKBUa2AbrqocXqOrHm5mZdowz7KXJUiGyjTgKBQEaRPbv+Gxsbdduv3pGjSCRS0OR3L8DFUZ2Ty7uoFLRChUVIuru70dPTY8iCUkxkpdI0mpZyxJEsyxgeHkY8Hs85J06vfdUTelwT6gJX7aI9NTWVUdNRT+3reqN39EU7tFhdJzY+Pq4M0PV6vWhqaqpo33shcmRU+stms2Utsl9YWChr1EkueFqtPLg4qmNY0XWpaTQtTBxRSrGwsIDZ2dmSIiTlUKjmSI80mpZKUnlnz54tObWxl8WREWgXbe2Ttd1uV1Jw5QxyrdeF2ujjzjVAly3SlQzQrffIUTUNONUpaCD7qJNyOhL1vn4ikQgXRxxzUmkaTYsgCEgmk+jr64MgCCVFSCrZZ6E6p0rTaFpKESys26rcYyhVHNXrwm0k2idrZkbJRj00NjYqEQ4zjmnRi2pfG9lMQLUjNphILWT+Wu/XdS3FnXbUCetInJqaqmiQcaWwfe91uDiqM4r1LiqFRCKB+fl5nDx5El1dXTocZWGyiQdtCkvvOqdiBAuzLAiFQkUZS1ayL+3rOflxOp3o7u5WRj2EQiEEAgGlNk5tRmkWjxk9qKXAyDdioxjX6HqPHJnl+LN1JGpHneSyb9D72gmHw2hqatJ1m2aEi6M6QetdpIcwopRiZmYGq6urOHjwYNWEEbD7C1tJCqtYCqXVYrEY+vr64PP5cPXq1YqOYT+k1Wr5/tQdWYcOHcow5JubmwOlNMOMUhTFuo1imOm4Sx2gW89DcxlmOfdqso06YZ/DyMhIhmjVNttUCova7nW4OKoDyvEuKkQikcDAwACcTieOHj1a04WOpdEuXLgAt9tt2H7yCZaNjQ0MDw9X7PxdzL60sDRpPUU7zLZgaA35mMcMa5u2WCyQJAkNDQ1wu92mO/58mEkcack2QFdthBgOhzEzM4PW1taqevvsN5hzfXNzs2LfwDpB4/E4Hn/8cTQ3N+sy6oRHjjimoFzvonywp7wTJ06go6MDi4uLysDBakIpxd27dw1Lo2nJJljYAF2/349r167pVrtSrDhKpVIYHBzE1tYWRFHMaGXnC0n5aD1m4vE47t69i/X1dczPzyvFrWzaulnFB2BucaRFa4R469YtuN1ubGxsZHj7sE64eo8qmRUmWhsaGuD3+3H58mXdvK6i0WjJg8brES6OTIo6jaZH0TXb5uTkJNbX13H16lXlAtdzrEaxRCIRxUzMqDSaFu37TCQS6OvrQ3NzM65du6brjboYcRQOh9HX14eenh6cOXNGaWVXRzvYQlPr0Rv1jt1uh8vlwoEDB9Dc3KwUt05MTCjjNliRsdmmrdeTOMpGa2urUlTPOhCXlpYwMjKiW7s6JzvMikBtOAlAudcEg0FMT08DQIZYKuT8vx9ELRdHJkQP7yItsVgM/f39cLvd6O3tzbi4qy2OWBrN4XDgyJEjVduvWrCw6NmpU6eUFmaj9pWN5eVlTE5O4sKFC2hqakIikcga7fD7/RmjN4rtEuLkJltxK0tBqOtm2LiNWs3EYtSzONIWNGfrQNS2q6uv8Xp932Yhl8eR1jYj26iTbMage72OUg0XRybDiDTa2toaRkdHcfr0aWXhVVMtcaTtRnv88ccN36ca5gQ+PT2NlZWVjOiZ3uQSR7IsY3R0FJFIBL29vbBarTlvOHa7PWP0Rjgcht/vV7qE1At4LeqV6u1GmUtkqOs1tHUzWgdpt9td9afmehZHQP76tFzt6my8jNquodoRvXq7vrNRrAFktlEngUAAa2trGB8fx/e//32sra3hOc95DkRRLPt6jMfj+NSnPoWHH34YX/nKVwAAm5ubeNOb3oRbt27BbrfjIx/5CH76p3+6rO3rCRdHJoH5iQDpRVyPGzBrS9/e3sb169dz3lzyzVbTC9aN1tnZWbU0mhZZljEzM4OWlpZd0TO9ySaOWDdca2srTp8+XbKpJOtOUXdnscgSgKou4PW8WBdCWzfDFgrmfWWz2ZToRjVSQfUujoolV0QvEAhgaGio6nYNZj3vEqXoT21hVU7ggGjHBbEJQo7jLNcd22q1or29He3t7QCArq4u/Nd//Rc+85nPYGpqCi94wQtw//334/7778eVK1eK3sfp06dx5coVbG9vKz+bnZ3Fm9/8Zjz72c/GI488gje+8Y0YHR0t+Zj1hosjE8DSaLdv38bZs2fhcrkq3mYkEkF/fz/a2tpw7dq1gkNS9W73VMNSSOfPn9/VjVatG9DW1hZmZ2fR3t6Os2fPGr4/rTjy+/0YGhrSrRtO252lXcArdZPei5QbCdAuFLFYbFe6U13crTdmXaSNJlsHFovozc/PQ5ZlJXpqxCw+s3gcqdmQE/jj8ChmpCgoAALgqOjEexpOo0XYLRb1cvju7u7GG97wBvzcz/0cXvnKV+LjH/84HnnkEfzt3/4tnnjiCVy5cgWf/vSnC27n9u3buH37Nh566CHlZxcvXlT+fP36daytrVV8vHrAxVEN0XoX6RXBYTU9586dUxbPfBiVVpMkSfHcYCkkNUxAGHnjp5Rifn4e8/PzOHjwYNVC8+w9UUoxPT2N1dVVXbvhtGgXcK2bNPM8qUV6wkzoca05HA50dXUpqSCtKSJrmW5paamoZZqxX8WRlmx2DUwsaetk9IieGjlXLUVlPJHawu3kJtyCFT9l9aJLLHxv+LvIDOakKLpVr52Wovj76DTe0XBy1+v1fg/MHbunpwevf/3r8frXvx6UUqyvrxf1+4WmDfzFX/wFXvnKV+pwpJXDxVGN0I4AIYRULI4kSVLcgktpjTdCHLFOrK6urpxpNLZfo57OUqkU7t69q4xEWVpaMjRCpoVSitu3b8PhcBiextOidZPWFhyX28bLySSbKSJrmV5YWIAsy0V3AeWCi6PsWCyWXQN0WfSUDdBl0dNyBugaNVctRiW8NzyK/tQ2LCCQQfHZ2AJ+z3kMz7bnjipvykncTAVxQMh8uOkQ7Hg0GcS2nEKTkPldNmLorHZ0CCGk4qaWVCqF3/3d38XAwAC++tWvVrQtveB3xRqQawSIKIplL96hUAj9/f3o7u5GT09PSTcCvcXR0tISpqamsqbRjNyvmlAohL6+Phw+fBjd3d0Aqutavb29jXA4jGPHjimDJGtFtoLjYDCoFByzJ/JSvGfq0QG8GiJDEAR4PB54PB4cPXpUiW74/X5MTk6W5fPDxVFxZEt/shRcKBRSBuh6vd6iBrcWenCTKMWPkn58K7EOCRTPsfrw0zYfrCT/Z/of8VX0pbZwkDiUY4hRCR+OTuGytRnuLOkxAIghfa/U1hexvSWw+16qtzgyYq4apRQ/8zM/g/Pnz+Phhx82zcOaOY5in6BNo2m/eOWIBUopFhYWMDs7iwsXLqC5ubnk49JLpKgjV9nSaEbtV8vi4iKmp6dx8eLFDCfXanXlsf07nc6aC6NsaNt4E4kE/H4/FhcXsb29DafTWTcGiWZHG91gPj/sXBezYNebCDUL6in36gG6bHAr64TLZY2RTxzJlOKDkXF8J7EBFxFBQHAzuYlHkht4T8OpvALp4cQ6Wog147N2EBF+mkR/ahvPsnmz/l4bsaFVsO2KEG3TFDoEO7wke82R3uJI79Ehn//859HW1ob3v//9um63Urg4qhLFjAApNXLE0kaEENy4caNsxa1HrZM6jXbo0KGiFlRBEHS98TNxlkwms54Po6MdsixjaGhI2f9jjz1m2L70xGazZUxh17ZTqw0S9aih2c+ofX5yLdjsXBs5PHS/kW2ALhtcnKtWLJ846ktt4bsJP7qFp6I/HmrBzeQmHksG8cwcAgcAJFDk+jQl5L4/CYTg1x2H8FBkHFFZQiOxIERTSFGK33Udy3qNSJKk63fWCHF0+/ZtfO1rX8OJEyeUn/3rv/4rLly4oOt+SoWLoypQrHdRKZGNra0tDAwM4MiRIxUPjK20W63YNJoWQohukRy1VUAucaa3GFMTjUZx586dvPuvB7Tt1OoZTeoamlgsVnVX9UoxW3oq14Lt9/uVCKzb7UYikUAqlaq7cTLVjnhRSiEDEIv4jLMNLlZf55IkweFwKLWh2getnySDEDX3ckII7ETA95P+vOLofpsP/xidR4P41DYTVIYAgouW/DPLrtta8EHhLP41vowpKYoLlia83H4AJy3ZU11GFWRXwn333Yf77rtP+fuf//mf48///M8rPDL94eLIQLRF14XqC4qJHFFKMTs7i8XFRVy6dEmX/G+5ERV1pKaYNJoWvdJcKysrGB8fLzi4Vk8xpoaZbBbbHVhPqAeLshqaYDCIjY0NZfwDH3GiD+oFW926vra2hoGBAVBKM7qxzC6WqiVGKaX4enwFn40vYE1OoEdw4pcdB3GffbfhbS6017kkSZibm8P6+jru3LkD4KnxGm63G3aS/UFLAoWzQM3RS+wd+FEygAkpDCdEJCFDAvAm52F4hcJRnlOWRrzdcqLg6wBjCrL1jhyZFS6ODKKcESCFIjiJRAIDAwNwOBy49957deukKOcGxtJo5RSAMyoVR8xtOhwOo7e3t2D4WO+0GqUUExMTCAQCeU02i6FeRAVz0vX7/ejo6IDD4cg64sTr9RpmW7BfYIXydrsd165dQzKZzDp7r9xuLKMppxM1QWVsyAm4BStcpLhF/XPxBXwyOocWYkUXsWOTJvEnkTGkQPGAvbwuKlEU0dDQAEopjh49uuvc+xxAtDWGiJXAZbUBhECiFClQ3GfNL8oaiQUfbDyLHyT8eDwVhIdY8VxbK05Z9BcdeoujSCTCxRGnfFi0qNQRIKIoKsXaWtgssBMnTihziWpFuWk0LZWkuWKxGO7cuYO2trai3ab1jBwlEgn09/ejqakJ169fN93CVA0opTlHnKjTQmwBr3UXitnSaqVitVrR1tamtE2z2Xvz8/PY3t6Gy+UyVSF9KeebUoovxpfwD7F5xKkEAoKX2jvwJudh2PNEYqJUwudii2gjNth2XtcECwQAH4/N4n5ba0736EKohYX23CcSCSz5x/G5+ApSkU0QQYTVYsHP2jtxUSwsHhxExAP2trLFWynvQU87gnA4rDjH73W4ONKRUtNoWkRRRCwW27XNyclJrK+vGzoLrBgqTaNpKVesrK+vY2RkBGfPni3pi6pXzdHm5iYGBgZw8uRJpW2Yk3/EyczMjGLS5/V60dzcbDr34XpDK0yzFdKz812LQvpSIkdfja/gI9FpeIkNzYIFKSrjX+JLiFEJb2/InUJalGNIQYZN06nVQCxYluPYoil4snRxVXr8NpsNv3bgHF4gHcVjyQBiiQSOhyiaFsN4fPRxxTW91gN0zVhzVC9wcaQTubyLSkGbZorH4+jr64Pb7a66iaAWPdJoWkpNq1FKMT4+jmAwWFYaq9K0GqUUc3NzWFhYwJUrV3QZ87KXyTXiZHl5GaOjoxn1SsX4znByk6uQPhAIYHBwsCbGn8VGjiil+MfYPDzEqkSJLERAB+z4r8QafsV5CL4ctTgtxApK07U+6kLsBJVhIwIaikzNZaMYcXdIdOKQ6AQcAJoBdCHDNV09QJdFUKvpUG9EzZHaHmUvw8VRhRTyLioFdUE2K/I9ffq0Mim5VjDfnnJ9lHJRijhiQtHj8ZSdxqokciRJEgYHBxXbBL2LYes95VMMuUacTE5OIhKJZFgGGLGA7IdzzFAXGDPjTxbFm56eLhjFW5JiGJS20UAsuGZxKymrUig2chSFjABN7nJ+FgmBQAlW5XhOceQVbPhpmw+PJNZxAHYIO7U/azSBX3B0FzRkLHT85YjIbK7prAuROdSrbQOMHKDLa47Kh4ujCijGu6gUWEH2yMgItre3Ky7yrZRCvkGVUqxYYfVWp06dqsimvtw0Houa9fT04ODBg2Xvfy+hR3F7MSNOvF5v2WM3OE8hiqISpQOyR/HYYv0pYQ1fSiyB0PT9rEmw4H83nsW5Am3mWooVo04IaCFWRKkEpyrSI1EKGRTtQv574FtdR5GkMn6UDECk6XEcL7a145cclX1X9RptJAhChkO9eoDu3NwcKKUVj5jJhd7jmXhajVOQYr2LSiGZTGJlZQVHjhzBtWvXqvqUy4QD+yIZkUbLtc9cqIe26lFvVc6CXqxNAKcy8o04mZqagiAIyuJebmfWfnKappRiSArhdnITLsGCZ1m9aFVFX7JF8QKBAD6/PIL/zxlAK0TYrXZYrRaEqIy3he7iy+7rcJSQpip2YSaE4JccB/FX0UkISHsFpaiMVZrAi23tOaNGjAZiwR83nsaSFMMaTaBbcBT8HT2Pv1SyDdANBoPw+/3Ktc7+XY/aPD3v3WyI9X6Ai6MSqbToOhfLy8sYGxtDY2Mjjh07pss2S0E9BNaoNFqufWYjmUyiv78fLpdLt3qrUtJ4sixjbGwMoVCopCG+Wkrt2NkvaZ9C5BpxsrCwoIw4YSm4Ugpe98P5lSjF+8KjeDixBgnp2Vt/SQj+xHUaz8nh/eN0OuF0OvHjrTW0Sk1okAmSyQTC4QioLGPdBvxXYhovajlU9HeBUlr09/Zl9g7EIeMfYvPYkpMgIHiVvRO/7jxc5LsGOkUHOqGffYSRQ7HVMHsMVj6RSCQQDAaxsrKC0dFR2Gw2RSzV2rLBCIdss8LFUQmU411UCJZGi8fjuHTpEsbHx3U40tIRBAHJZBLDw8NIpVKGpNGy7TObWGHdYHrbFhQbOWL1TV6vF1evXi37cy5lwa7HQa7VpNCIk+bmZkUsGVnDUU1SO6miL7gjeDQyhRfY2nCyCC+chxOr+M/EGtqITWljj1EJ74mM4pK1Oa/RYFBOwgYCURQhik6kraooIsko1qJh9Pf3Ky7phdJA7D5ZDIQQvMbRhVfYD5Tsc2QUetfrFIvNZss5QFdt2dDS0lKwkUHvewqPHHF2wYqu9UyjhUIh9Pf3o7u7G2fPnlXql2qBLMt44okn0NPTY1gaTYtWHBndDVaMAGH1TXoUwrP97YdoRTXJN+KE1XBkc5Kup88iTmW8dXsQt1KbiLrieDy2gM/GFvDbrqP4eUd33t/9cnwZTggZ/j4OImJblvCjZAAvsed+4LjX6sHX4ysZ6TOZpqMbz+k+juOHGjLSQJOTk0o9E4tssGhLOZEXGxHQKZrDPLRakaNCaAfosgcD1sjABuhWw3g1FovVtA62mnBxVACj0mgLCwuYmZnJSF1Va2q8FjYh/J577qmqb4+65iiVSmFwcBAWi8WQbjAg//mllGJmZgYrKyu6+UkVGw2ilCIQCMDhcNTUx6pUzBLpyjXihLkZW61WtLS0KMas1WRNjuP9oXH8d3IdjcSCNzh78KD9YMH7yL/FV/B4Kog2YsO2LKBZsCFJZfx1ZArPtvrQlUdARKiUdb6YDIoYzX9/eZ3jIP47sYFVmoAHFiQhY5um8AJ7O46L6UJcbRooHo8jEAgo9xGHwwGv11s3QjQXZhFHarQPBuoBuiwDwTrhPB6PIZ+B2c6JUXBxlAc9vIu0pFIp3L17FwB2pa6Kma2mJ5IkYWhoCKlUCq2trVX37WFiZXt7G/39/boM0c1HLrGSSqUwMDAAm82mq59UMeKIiUImwNV+NC0tLabt0jLzwqddvFlaIhqN4vbt2xnmiEY+aS+kYvip4A+xRVMgIKCI4e2hIXw7vo7Peq7m/d2vx1fgJGLGebYSARKl+FEygJ8VO3P+7v22Vnw8OosG8tS9RaIUAoCr1vxNBV2iA59ovgf/EJvHj5IBeIkNv2o/hFfYD+T8HbvdnpHyZMXdS0tLiEajSCQSyvmup6iDGcWRlmwDdLe2tpQ0XCQSwdjYmC7+VvUUedUDLo6yoPUu0ksYbW1tYWBgAIcPH0Z39+7QeDUvPJbSO3jwIA4ePIjBwcGqp/QEQUAwGMTy8jLuuecewwv9sokVI4VZIXGktghob29PTxWX5YzOFZay8Pl8fLBrmbC0xMrKipK+Vo84UYvRbIvHF6IL+L3QXWxBAgHwDEsLvtZ0reBC8+7wEDZpKqM9XaYy/iu5hp8kArjXlntIsQSKXJ80RX7B/bP2TvxHfA3zchQNRESKUsQh41X2ThwTCz8AHRSdeHfDyYKvywYhBC6XCy6XC1arFeFwGD6fT0lXp1IpuN3uvOfbLNSDONIiCAI8Hg88Hg+6urowNDQEr9eLQCCg+Fsxi4zm5uaSH772k0Ay75VZI/T2LmLbnJ2dxeLiIi5dulRzn4hs3WjVTulJkoTZ2VnE43E87WlPq8pNUvse2Xm4ePGiIUWG+cTR6uoqxsbGFIuARCIBYHeXFpufxQe76kOpI07+Ob6AN4cGld+nAH6QCuBE4DuYbnsg776+l/TDopE4AhFAqYR/iS/lFUcvsrXjQ9FJNOCpxTlFKUQQPM2a+/cAwC1Y8cnme/Cv8WU8kthAE7HgZxwHcJ/Vl/f39IaNrmAWDYcPH1bMKAOBgHK+2WLtdrtNJUbqURypYQXl6vsJG6C7traG8fFxWCyWjE64fO+3lAL7vQAXRypkWcbS0hIkSUJ7e7suF0IikcDg4CDsdrthtTTFwtJokiTtSulVUxyxiInH40FTU1PVnh6ZWJFlWYkaGNmVl00csREom5ub6O3tLTjzKtdg16GhISSTSWVhMXMKzgx8MbqIP2hfxcbmClxExC/Yu/BQwxlYCow4+d1D/nQvvOZW4EcK/xydx887cxsNiiBZYzwEyDtMFQBe4TiAhxNrGExtIylSJOUEKIBfdR5Cj1i4Ls0tWPFLzh78krOn4GuNIluUIZsZZTAYVB4WWNu61+uteaS0Vt1qepFtrlq24cXaejH2fWhoaMg4/5FIpOYP9tWEiyNkptESiQTi8bguX0oWSta7Jb0ctGk07furljhaXl7GxMQELly4AEmSsLKyYvg+GawA/PHHH0dHRwfOnj1r6M1XK44SiQT6+/vR1NRUlsmnNuqhHgmhTsFVYpRYCrUoyJYkCVFIcEIseuH6XHQBvxUagCxSWEEQoRI+FpvDhBTBFz3XM167yxxx7T/T4SLtWyXAp2JzecXRS2wd+Mf4PGQqQ9gRQykqg4Dg9QXcm51ExEeb78G3Y6v4UnAExz0deImtA5esxvmO6U0xkRftYs3qw+bm5pS29XL8rPSg3lNIxYg7bb1YLBZTRswwN+yFhQUcOnQIbre7bHEUj8fxqU99Cg8//DC+8pWvKD/f3t7GX//1X2NxcREf+chHytq2Uex7caT1LtKjKJpSisnJSayvr+vW+VQJxZg6Gi2OZFnGyMgIYrGYYqoYDAarusCur68jEomgt7dXiRQYiVocsXqz48eP6yaUtU/h7CmQ+aEYmYKr9qIhSRJ+butJfCu1DhnpYM5PiS34V/f1ggvAH4dHAQBWAAIIBBDIkPHfyQ1MpsI4Zsl9wycAqPatMrG0GcHY+ljOESfvazyN7yY3MCtHQamkbO83HYeL8iuyEwHPt7aiI7iAa8fLqwGqJaWYQDKyta37/X7Fz0o9f69Q1FUP9ro4UkMI2TXSJxwO49FHH8WHP/xhLC4uwmKx4LOf/Szuv/9+dHbmbgrQcvr0aVy5cgXb29vKz5aXl3Hvvffi/PnzhjbilMu+FkfZRoBUKo6YgaDb7S6780mvJ5Z8aTQtoigaJo6i0Sj6+vrQ3t6OM2fOKO+t3FlnpcLEqt/vVwzUqgETRwsLC5idnTW83kz7FMhScOrCY7aQ17IQNkolbNMUfMSWteU8Gy/efBw/koIA0gJDBvBdKYD7N3+C73qfkfP3ZFnGGk3AiszgjwABMmR8O7mRVxwdJ06M02jmD3cO+SOd1+ENpXb5/bDIXaNgwWMtz8I/xufxn/FVeIgVv+o8hN48tUbZqNcFutzBrQx12zob4Mr8rBYWFiBJUoYZpZmLu2uBJEkV1UyxSPUb3/hGvPGNb8TNmzfxwQ9+ELOzs3j9618Pv9+PZzzjGXjlK1+J+++/P++2bt++jdu3b+Ohhx5Sfub1ejE0NIQvfOEL+MEPflD2cRrFvrya8nkXVSKO1tfXMTIyUpGBINt/pV/0Qmk0LYQQQ7rV1tbWMDo6inPnzu0SJdVI5SWTSfT19aGxsRHXrl3Do48+auj+tIyNjYFSit7e3qrevM2WggPSougD4XF8Jb4MGYCbWPBW11G8ypH/qXFTSuDHKmHE/k8BPCltYVmK4kCOOhxBEGBBehip+h2mR5oCBwrM4HrYcy/OBr6LuCav9np7N07a3YAdu0acqJ2MvV4vft7bhjd4DuXdTy7qObWjd0Gz1s9KPX9venpa95lk9Y7eNVPJZBKHDx/GO9/5Trzzne9ELBbDj3/8Y4TD4YK/6/F4dv3MZrNVJfpXLvtOHBUaASKKIlKpVEnbZHO4tre3cf369Yq8PPQQDMxgspQuLL0jR5RSjI2NYWtrK2fhsdHiyKgxJMXAcvfd3d04depUUeLUyBSjNgWnXchLTcH9t7iNpJzEL0seOIu8Ab99eyhthggLREIQpTL+KDwKJxHxojyuzT9JBUGxqyZaEUjfS/rxGjG3a/QD1lb8Z3IV7CgpZCQBNBMLXmzNb3raanFgqeW5+JPYOP4jsQYvseIvm87igmW3X1C2ESd+vx9jY2NljzipZ3Fk9LFnm7+nLqa32+3K+dYWF+8HshVkVwLrlmU4HA485znP0W37ZmPfiKNivYtKFQksZdTW1lZWkW22/ZcbwZEkCXfv3oUsyyV3YbHZanrAUostLS15z4kgCIYJgvn5eczNzeHy5ctV77Bg3WTNzc3o6uoy5U1Zu5AXm4L7QmwBv749gJQr/bm90z+Nn7N24mOeS3n3NydF8UhyA02wKGMt7ESATCn+JjKdVxyd3qnP0QokduVcEPMXKX+s+R48L/gohmloJ14ENEDEF5uvFhVdsFgs+JPGM/gTnCn4Wka2lNDW1lbWEScejyfncdSzOKp2K7zNZkNHR4fyIMTMKFlxcTXHbJgBPTIQavbT0Flgn4gjbRot382mFHHCOq+ypYzKRRCEssRRqWm0bPvVI4rDhEExqUUjao6YQKSUVt06QT2C5Nq1axgfHzfNiA0tUSqhP7UNOwRcsDTlTMGxdIXX60Xc3YBfTfUrooRFbv5vcglnw014a8OxnPubliKwgGTM+wIABwTMyNG8IuCw6EInsWGJJhSBxI7BByvOWfNHRxsFC37sfRY+2f9jrBzxocfiws/bu2Cp4sKtNucD0s7ogUAgY8QJi3KoW9jrWRzV+tidTiecTie6uroyxmywBwC1GaU2kmfW720pSJKkqyM5F0d7jFJHgFgsloJpNUmSlDk2rPNKL8pJb5WTRtNSqThiRc8bGxu4du1aUU9meqfVIpEI7ty5U7ZArIRsI0iMTpWVy1diS3hPeBTSjtdyC7HiI00XlTbxXCm4t4QGQdX3WgoQkhYqH4pM5hVH3aIzvT/NghmHjC7BXvCzeqTl6Xia/4cIIqUIo2aI+I736UW/70txK642nDBFLYrFYtnVwq42+2RRjkJT182MmUwUs43ZYGaULJKnNqME6n+GWKUF2Vq4ONojaNNoxV4khRZsFqHp7u42xCenlMiVNkpSSQi1EqHC/HsaGxtx/fp13c51KWgdp6sJM7U8dOhQxlgYM4qjJ5ObeFd4BCKeMiLcoAn80tZtfKfl6fAIu4U+S8GtbYwD8k7khu5Eb3beXoikI7O5rsFjogu9Vg8eTQbQTNOptSSVEYeMX3ceLnjcXaITs20P4FvxNXwvuYFnWFvwgjypuHrD4XCgq6trV5RjYmIC4XAYo6OjdTFyQ02tI0f5UBdvA9g1rFgQBMTjcWxtbVWtYUFv9K45CofDFQ0mv++++3Dfffft+vmDDz6IBx98sPwDM4j6+JaVSCUjQPLVwbAITT6/oEopVjAwkdbT04Pu7u6Kv7zlpvOCwSAGBwdx8uTJkr84eogjWZYxPj6O7e3tohyn9YaJsosXL+66Jswojv4hNgeJUjiFp26aLiIiQiX8e3wFv5DH1PCcpQmDiZDyd3bJUQBNsoDbt28rKbhsXXAfbjyPPwgP45HEBkRKIBKC33Eexc/ai/dLecDehgfsbcW/4TpEHeXw+XyYmppCa2trxsgN9YgTs0Y4zBQ5KoR2WPH29jaGhoYwPz+PUCgEp9OpiKl6iebp3a3GTCH3C3tOHGXzLqqUVCqFu3fvAoCh4yaA4iJHeqTRsu23FKHC5sUtLS3hypUrcLkKD7TUUql4UBd+X716tejPWo8n2mLHgJhNHM1IUViyvPUkpViU43l/9383nsW/+JfArhL1O/uTpjO4fv1Qzi64lpYWNDud+JumC9iQE/DLCRwUnRlDWY3GzJGMXDAjRe3IDXVXFhv54PV6TbVw1+P5ZlgsFjidTpw7dw6UUkSjUcXPKhqNorGxUbmu9azr0RMjxJERMyjNyp4RR/m8iyqBORsfPnw4I2ViFPmiKalUCkNDQ7qk0UrZb7bjYPU1N27cKPtcV3LjZKNZSvWUYoKskn0nEgnF6DNfN54ZI0fXLR4MpkIZbV+UUtiIgPOW/Dc+r2jDV93X8XObTyCyI5FEAG91HsWDrrSPT64uuJGRkYwuuKMeDyxVFEb1SrZrVTviJBKJIBAI7Fq4vV5vTX1kSokcpaiMm6lN/CDhh40I+GmrF5cszTUTV+pjJ4TA5XLB5XLh4MGDoJQqZpR3795FKpXKKO42S9qT1xxVhjk+xQop5F1U7jZnZ2exuLhouLOxmlyRo1AolFHXovdNo1hxtL29jf7+fhw9erQk+3i9YB1hy8vLZY1mYe+z3JvG1tYW+vv7i0ojmlEc/ZLzIL4YX0JIltBABMhId64dEV14rq2wyHy2rRXLbc/HI1MjSDXacL/3UM6n03xGlGrTPp/PV7d1HUZTjJBnCzcb+cAW7oGBAcVFOteIEyMp9iEkRWW8PzyOR1NB2EEgA/ivxBpeZuvArzkP1eS6yHePIISgubkZzc3NOHLkiHJda9OeLS0tcLvdNUst8rRaZdS9OGLRIj3TaJRSPPnkk3A4HFVvB89W+2NEGi3bfguJI+YddM8999TkCUKPiFUlgoWNASnWO8mM4uig6MTn3VfxUHgMP04GYCEEL7V34F0NJ2ErMClezRHY0IjGkr4bhYwomaO01+s1bB5hvQmwUqOc2RbuYDCopIQsFouSgtNbkKZkGR+NTOMLiSXEQXGxQcZ7kUL+EbvAo8kgHk0F0U2e6lqUKMXXEyt4js2HU0XModObUoqZtdc1S3uyekSbzZbVpsFojCjI5mm1OsCoNFogEEA4HMbRo0drMgxPFEWlw87INJqWfOJI3RVX7TEYDBY5O3LkSEWfSzmCRZZlDA0NIZVKlfT+zSiOgLSp4j+5ryBF5fQg1hoJhlyO0qOjo4jH43C73cqiYpZURbWpNAWsdZHWDifWS5DKsozXbD2BnySDsIGAAPiGK4Wb4SfwLfvT0ZpnTMv3khtwQMh4nyIhgAw8ngzWRBxVkpLSpj1jsRgCgYBi09DQ0KAIVCOHkutdEB+JRHhazeyU6l1UDMynZ319Hc3NzWXPRqsUURQRi8WU9JVRaTQtucSR3l1x5bC0tISpqSldImeldsjFYjHcuXMHHR0dOHz4cMlP8cWKo1qcV0sJkSKjyeYozeZmzczMKCk41qFVbxGgctG7qFk7nFgrSMsZcQIA30qu47FkEB4iKsdrSUlYown8TXgSf9KU211c2DUYJg0hKHowsd7oKSwcDgc6OzvR2dmp1OEFAoGMc87ScHrWiOl97fCaIxNTrndRIVjXk9vtRm9vL+7cuYNUKlWTYkZBEBAMBrGysmJoGk1LtlonJkqMtC7IhyzLGBkZQSwW0y1yVopg2djYwPDwMM6ePauEzI3aVz1i5HvTdmixuVmLi4sYHh6uSgrODBjZ8VXsiBNmjJjvfvutxLqyzacOHrBDwDeT6/iTPMfxHJsP30tuQKZUiWKmaHrQyw2rPpMHSsUoGwJ1HR4756xGbGFhAbIsKxHTateIFSIej5u2M88I6kYcVeJdlI/19XWMjIxkdD1VMt+sElKpFGZmZhCLxfD0pz+9qqkEdURFlmUMDw8jHo+jt7dXVwfwYmERm/b2dpw5c0a3z7uYeW6UUkxPT2N1dbVot+9s7GVxVO3IjXpu1n5KwVWzHT7XiJPV1VWMj48rI068Xu+uQa4NEHf81jORQeFE/gW+1+LBA9Y2/HdyHQLdMRglwC84unFMLN0iRA+q5dEkCALcbjfcbjeOHj2KVCqlNC1MTU1lREybmppKOiYjrpv9ErEF6kQcGeFdJMsyxsbGsL29jevXr2coYqOnxWeDpdFaW1vR0NBQ9Rs8O6eRSAR9fX04cOCAIQ7g2dAuAJVGbPJRaJ5btjEglexrr4qjWpIt4sEWFG0KrtQFxWxE5BRmSBI9kgRblaMIuUaczMzMKJ1LTCy9xtmFT8bnkKCyUtgvQ0YSBK915rdAEQjBW11H8TypFT9JBGEjAp5ubcGJGgkjoHYGlhaLJaNGTB0x3d7eVjytWlpadglUI6lnz6pyMbU4MqroOhqNoq+vD21tbVl9akRRLDhfTU/m5+cxOzuLixcvKq3qtSCZTOLJJ5/E+fPnladHo1H7Dqnns2kFq977y4ZeRd/F7EsNK7yXJAk+nw9er7cm0bp6RTsKQr2gbG1tKSm4aj/wVEJCkvCzW7fwffghNwKifwbPs7Tic82Xa5ZqyTbihA2aTiaTeF17E/7JtYUIlUAByEI6ZfbL9kL9aunvykVLMy5aqp++z4ZZ3L3VEVMAihnl9PS0UgPEIqbqCDerx9WT/SaQTCuOjPAuAoDl5WVMTEzg3Llzys1Ui8ViqUpaLZvzdigUqnpKj0XRkskknv70p1e11opF6SRJQn9/PxoaGkqaz1bu/rSsrKxgfHw86xiQcilGHLG5bN3d3XA4HAgEAkrtAXsqN/OICDOSKwUXi8Xw2GOP1UUK7sWbj+ExaRMiBaxIp6f+M7WG12w9gX9p6a314WWMODl8+DAkScLxzU08d3MFX0mtIiFQXA5a8doTx2t9qGUhSZIpH1CcTie6u7sVTys2g294eBiJREK5thsbG3W9Z+htKFkPmPLOwIqu9UyjSZKEkZERxONx3LhxI++FX+6csVJQd6MdPPjUk1WpYzwqJRaLoa+vDz6fD06ns+pF6IIgYHNzEyMjIzh27BgOHDhg6P60goVSqqRXC10Xle5Ly9raGkZHR3HhwgU0NDQglUrB4/Hg6NGjWUdEsKiSWQqQ6yFlqE7BLS8v49q1axkpOEJIxiw4MywAi1IUN6VNWICdpngKcef/j6Q2EJISaBRr53ydDeb181yvF8/FWSQSCdxcuYmlpSWMjIzA4XAogtRMI05yYZbIUT7UAvXQoUNKejkQCGB6ehrRaBQTExOKGWUlEcf91qkGmFAcscJrQL9uNNaO3t3dXVQdjZEF2ZRSxUwwWzdaNYvBWW3PmTNn4PP5sLKyUpX9qkkkEhgeHi7aWLFS1IJFPQaklNls5exLDUsf+v1+ZS6bNo2r9kphs502NjYyCpB9Ph88Hk9Noh9mX9xyUWwKTitC/XICy3IcHYIdvjyePXrwaDIIinSLe/rqSZ9rEQRJUAxIYTzNZOJIi81mg9VqxZkzZ5TrVz3ipKmpSakLq+WIk1zUgzjSor62Dxw4gPHxcTQ3N2N9fR0TExMVGYDuN3dswITiiNUW6fVUytylS2lHNyqtxtJohJCcrenVKAZX1/ZU0o1VCZIkYWhoCIlEAr29vVX74rHzu7m5iYGBgaLGgJRLtuLvVCqF/v5+OJ1OXLt2ragbsHq2k7oAeWNjQxnD4fV64fP5qurAuxco1AXncjfjS94Evi1uw0IIJADPs7Xi/3Edh8Og2XAXd2bcyaA7kSOo/g4cF+trkVJfvywdtLW1hUAgoIw4YYu6WdrX61EcqWFpQXVBfTwe3+VIrzajzHff4OLIJOjR5ZOtnqdYRFFEIpGoaP9aWBqt0ABboyNHLFrS3NyctbanGkV3rCOuq6sLyWSyqos5IQRra2sIBAK4cuUKXC7jOmK013E4HMadO3cqLvjOFv3w+/2KA6968Oh+8iUpxIoo4dFkAF2CA4fE3anJbF1wf+Efxr8l19EcTbuJ26xWfENahpUSvKPxpCHHedLSiKOCE5NyFCIoBBDIoEgBuCQ2oc3kUaNCEEKU9vUjR45ktK8bPeKkWOpdHGU7frvdnmFGyQYWj4+PIxaLKdG8lpaWXfcNdl/ZT5hSHFXK1tYWBgYGCgqRXOgpUNRptGJmkhl5I2CT7E+dOqU8TahhURUjn9zYvCHWERcMBqtWYyXLMtbX12G1WqsyM08tjtj71rPgm6EdwxEKhbCxsYG7d+/uGjyq5w2/HmqOACBMU3hvaBTfat9G0/YQJFA83dqCP248hQaS+xaYIBT/KW6iU2yE1SnspPwTaIwn8KXoNO6bjqCnpdWQOrCHPU/HA8EfY0aKQt5Jrp0UGvDv7toXY+uNtn1dO+KkWuM21NS7OCo0dFb9IHDw4EHIsqx0H969exepVAputxvLy8u4ePFiRZGjeDyOT33qU3j44Yfxla98Rfn5X//1X+Mv//Iv4XQ68eEPfxgvfOELy9q+UewpcUQpxezsLBYXFysajqqXOComjabm27E1/MX2GIa6/Hjmxk28o/kkLlrdFR8HswdYWVnJO8neSHFEKcX4+Dg2NzeVOhu2z2osssy+wW634+DBg1UJ3bO02vj4OILBYMb7zvZavfbJijTZU3kwGMT6+jrGx8dht9uVqFIlhbH1lLr7q8gUfpD0wy0TuAUrZErxw6QfH4pM4g8bTuX8vW2aQopSWHcWSUIIbDY7bDY7kjQBj+cg5GBklxGlx+OpuLC/TbThju/Z+ObCOPoRwQvaj+KctX6GflbynS404sTtdisRDqM6yvSeaF9tSj1+QRB2DSze3NzEP/7jP+Ltb387AKClpQXf//73ce+995ZUJ3b69GlcuXIF29vbys8mJibwt3/7txgcHMTc3BweeOABzMzMmKpD0JTiqJwbbyKRwODgIOx2e8VRAT3EUbFpNMYnQtN4+9YgIlQCrMBXYov4j/gKvu57Gp5p95V9HMlkEgMDA7Db7QVNDY2qd0okErhz5w48Hs8uX6lCpox6wArPz507B7/fb+i+1MiyjMXFRbS3t+Pq1as1M5VrbW1V3N+ZTworjC13lla9EKIp/FdiFT5iQxhxAGnTQR9seDixht9xHkOTkP022EKsaCAiYlTKqC9KUBkWEBxu9MDZ5MtqREkIQUtLC3w+X0VdcGepA+cFF7rqSBgB+kVeCo04AaBERguNOCmFvR45KgTrPnzooYfw0EMP4Z/+6Z/wve99D5/73Ofwlre8BZ2dnXjggQfw8pe/HMeP57druH37Nm7fvo2HHnpI+dlXvvIVvOY1r0FTUxPOnTuHI0eO4NatW3ja055W9jHrjSnFUamwdNGJEycUs6xKqEQcsTTa3Nxc0dGrKJXw+0wY7SADiFAJbwn24VbHc8o6FpZeLLZF3ggbgWAwiMHBwYKpPCNgY0DW1taUwvNgMFiVSFUoFFK6RU6fPm34/opF7ZOSbaFReyvVU3QoF1tyChS7B5iKhACUYIum0JTjNmghAn7F2YMPRSbhBuDcEUpBmsKbnIfgVAkmbR0Ys2JgzsZOp1NJDZVS51avxntGHXe+ESdjY2Ow2+3Kea7EQXoviCO9j7+3txe/93u/BwCYmZnBt7/9bYyPjxcUR9kMhefm5nDhwgXl7wcPHsTS0pKux1spdS2OWNfV+vp63nRRqZQrjlKpFAYHByEIQknRqycTwR0fk92MpEIIySk05ni6zQalFPPz85ifn8elS5eKzhUTQnSttZqdncXS0lLewmej0mqsK8zhcGQUnlcjUrWysoKJiQkcOXJE98J+PdEuNMlkEn6/H4uLixgZGcloa69FR6MetAs2NMCCGM28rmNUggsi2gu05b/K3gkLBHwqNotVOQ63YMXvOI/i1fbOvL+ntWLQFr8WG7GrV3FULXGRa8TJ9PQ0IpFIxoiTUpoT6l0cybKsq8VHOBzOqJU8fPgw3vCGN5S9vUQikXF+BUEwXRqzbsVRPB5Hf38/mpubK56BpaUccVRqGk1No2CBlGVoI5B2OGGziopBW+dUygWnV+SIiUSLxYLe3t6ChYF6i5V8Y0CMnHfG6qq2trbQ29uLYDCIeDxuyL6MwGq1ZrS1h8Nh+P1+DA8PI5lMZhR2A/VRkG0hAt7sPIwPRMYhE4pGShGBhDCV8Puu47AW+G4RQvAKxwG83N6BCCQ4ISqT44slW/ErM+ubnZ1VUnDZ3NDrVRzV6rgLjThR14XlEw/1Lo4kSdK1UzUcDusyUonR2dmJhYUF5e/z8/Po6enRbft6YEpxVOhLtb6+jpGREZw+fVqppdCTUsSROkpTbhH4RUsz2gQ7wlIk4+dWELzIcaBoccTMLnt6ejJct4tFjxQXEybFikS902rLy8uYnJzMarAJGBc5SiaT6OvrQ1NTk2IoWc+DZwkhaGxsRGNjIw4dOgRJkhAMBpV6JUmS0NjYiKampqoOwCyHVzgOoImI+N9bfdigSRwSnXinowcP2HeneXNBCEGDTrdLdQru2LFjWd3QWbTDiBlZ1cAM4iLbiBNWF8b8wXINKK5XUcrQu6Bcb4fsF7/4xfjFX/xFvO1tb8PMzAz8fj8uX76s2/b1wJTiKBes82dra8uwwaRA8eKIRUhEUayoCJwQgi/6evH8tR8hCRlhWUIDEXFAdOD/9dxT1DYWFxcxPT2dUxQUQ6VCpZAwMWKfDDYfLhQKobe3N2eqwojRMCxqqK3tqmdxpEUUxYx266mpKcRiMWUAZlNTk7Kgm9Hx+Ln2NjSvNaP3iPla4bO5ofv9fuVexxaleiqaN6O4YEXGXq8XQPaJ9+zfzXj8paB3zVEkEtFVHF27dg2ve93rcP78eTgcDnziE58w3fmuG3HEWrHb2tp2dTzpTTHbZguiXhPcL1rdmDjwPHw5toSfzE3gvgNH8YrmQ7sKSbVIkqSkPUo1u9RSrlCRZRkjIyOIxWJ5hUmufVYqIFg3XEtLS8ExIHoLFiYIs0UN95I40mKxWODxeBRDue3tbWxsbGBgYACyLCtP5Hp2EO0H1G7SBw8eVMY+hEIhpWg+VwrOTJghclQIrTs6E6UTExOIRCIYGhpS6sLMKPjzYUTkqBKH7Pvuuw/33Xdfxs/e9a534V3veleFR2YcphRH2sWNTUw/d+6c0g1SK/RIo+XCJVjwOlcPLkQ3cEL0FRRGzGm6s7MThw4dqlgwliOOYrEY7ty5g/b2dpw5c6bkY6g0zcXGgOTqhtOiVwG4emBtLkG4l8WRGkKI4pFy9OjRXR1E6idyIx3J9yqNjY1KxE6dghsZGYHT6cyYBWeWp+96i7xoReljjz2Grq4u+P1+LCwsQJblDMsAsxUPa9Hbr447ZJsMSZIwMjKCeDye10CvWuiVRitEMYXRTDBeuHABbnflRpFA6eJIO7i2GvtUMzc3h/n5+ZLGgOhRc1TswNr9Io60qDuItGmiWCymFMW2tLTUZGhuPaEVGflScKV0wRlNPUSO8qEeccIEfzAYxMbGhhLNY6LUjPMMjYgclVuuUa+Y9s7Eiou7urpw9uzZml98zDNIrzRaPvLVPMmyjNHRUYTDYd0FY7G1VpRSTE1NYX19veLBtYIgIJlMlvQ7bGitLMsli9RKBQtLp544caLgwNpS9lXr67tUin1v2idyrVkiG5pbyzlaZiZfBCbbudX6VtUqBVfv4kiL1kyVDXGdm5tTRpwwUVqtESf50Fsc6V1zVA+YUhyx+qILFy7oPoeqFNjN36g0Wi5yRVNYCqutrQ2nT5/WfSEpJoqTTCbR398Pl8uVdXBtOfssRaxEo1HcuXMHXV1d6OnpKfkcVBKpWlpawtTUVNHXwX6NHOUj19BcNkeLD83NpJT0VDbfqlxdcEan4OotraammO+sdohrOBxGIBAwZJRMOehdkK13t1o9YEpx5HK5cO+999Y0ryuKIuLxOEZGRgxPo2XbtzaCw+wLzp49q3Rb6E2hTq5cXVmVUEqaSz0GpNzas3IEC+uEC4fDJRW9c3FUmGxDc9XDL9WF3Wav8zCCSkRGLVNw9Rw5KvXY1bYX6lEyzMcKgPJAUK0GBb3PfzKZrHlZS7UxpTgCUPMbIaUUN2/exLFjxwxPo2lRRzeYsWAwGDTUvoDtN1eKa2FhATMzM7pHz4qJ5KjTeJWeg1IFi7oT7sqVKyUtVFwclUY2X5pAIKD70Nx6Qq8ITLVTcPUcOapUWGQbJRMMBjNGnDBRaqRHWL2ef7NgSnFUyw+VUoq5uTmEQiFcvnzZEJPJQrDIEXMBd7vduH79uuHnJZtQYVYBqVSqYquAYvepJtcYEKP2p2Zrawv9/f04efJkwfqibHBxVBmiKOYdmtvU1ASfz1fz4mMjqdaMMr1TcPUcOdK7XsdqtWaMOIlGowgEAsqIk8bGRkWY6vXwq+c1U89CtxJMKY5qRSqVwsDAgNJtU6uaB0EQsL29jenp6aJb1PXar1o46G0VUMw+1TC37aNHj6KzM/8sq2IpVrAwU83Lly+X7e+x128o1RZ+2qG5zFtJHfnw+Xy73I7rmWotTHqn4Op5QTVa2DmdTjidzl0jTlgqudgRJ/nQ+7tZz59nuZhWHFX7qVvbjTY4OKi7k3IxUErh9/uxubmJGzduVLXzQV3rtLa2htHRUZw/fz7rVGW9yPU5l+O2Xcn+GGpDy0ojZaVcw6yg06wO01pqfaMUBEFptQaeinwwt2Pm/+Pz+ep2aC5Qm0WpUAqOUqoIpVw1NPUcOarmsVcy4qRapFKpfWm5sf/esQaWRltYWMiopyln+GylsE4wSim6u7ur3hLKCrLHxsawublZFW8pbeRIXfxcqtt2OftTw+qLvF5vWYaWWooVR6wWwev1YnFxEZTSPRkFMRJt5CMSiWQMzXW73UilUrqnTIzGDE/suVJwWpPPlpYWpRbMDMddLrUUdqWMOMmV7tT7+Ct1x65X9rU4Ymk0q9W6qxut2uJoc3MTg4ODOH78OAgh2NzcrNq+GZIkYXV1FQcPHjR8RAtDLVbi8Tj6+vrg9XpLLn4ullyCpVSn7Ur2xaCUYnJyEoFAANevXwelVCmKZzfEra0txUPF5/Px9vYiIISgoaEBDQ0N6OnpUZ7GV1ZW8MQTT5jewM/sqIUoAEWIqmvBKKU1tWGpBDNFvXKNOGHpTjbTUD3iRO8HgFAoxMWRmTA6rVbI1LFa4kgdubp8+TJcLhc2NjaqHrUKBoMYGhpCQ0MDTp48WbX9MnEUDAYxODhoeI1VNl+lhYUFzM7OluS0XQz5rmFWaO50OnH16lUAUDoFtVGQcDictb3d4/GY5iZuZtjTuMPhQG9vr2LgNzMzY/qhufUQgdGm4La3tzE5OYm5uTksLy/X3Zw9M4kjNdnSndvb27tGnDQ2NnKPIx0wrTgyCrUYuXTpUk5FXA1xlGsciV6T6ouBnY/FxUWcO3dOKW4tlSUphr8JTeDh2CpcxIJfdh3C6xt6YCGFv6ThcBjDw8O6i5NsqH2VZFnG8PAwEokEent7dc+r5xJHkUgEd+7cweHDhxVhnuvzVnuoHDp0KGt7u8/nq8ncsnrtxNMa+LEFxoxDc1k0sV5gtWAsxdbS0pK1jd3Mdgx6GygahbruTj3iZHV1FZubm3jyySd1iZBycbQPyJdG02K0OGKGitkiV9WKWqVSKdy9exeCIKC3txeJRKIsUbYixfC8tR9iQ07ACgIZcfzR9hC+n1jHp1pyzx5j9U2JRAI//dM/XZVaECZY4vG44jZu1HiabOKImXmWOxMvW3v7xsZGxtwyn89XUadLMewVmwL10NwjR46YbmhuvZ5jWZZBCNnVxh6JRBAIBDA5OYlIJKJ0wXm9XtPYMeg9tLVasBEndrsdhBAcO3ZMKaIPhUJwuVxljTjhaTWTofdixdJoxbaFi6KIRCKh6zEwChkqFnKq1oNwOIy+vj709PTg4MGDAMoXZR8JTcEvJ+AiT91QKKX4dnwNt5ObuGLz7PodNgako6MDiUSiajcjQRAQj8dx8+ZNnD592lAfK7WAoJRiZmYGq6urupp5Op1OHDx4MGNu2cbGBqamppTaGp/PZ6jZXD1QrMhQD80FnqqnqdXQ3HpIq2UjV8SLpYXUdgxsfAxrRKh11M6sabViYTVH2Uac+P3+kkec8ILsPUqxaTQtRkRv2MBUSZLytomLomhoWo21yWtn15WbzvtmfBUiMm/ghBAkqIwfJ/y7xBGLnpw/fx6NjY1YXV0t632Uw9LSEsLhMJ75zGdWJYVHKYUkSUr6NJ+RZaULodaZl9XWMLM5dW2NWZ7SzU6th+bWqzhikaN8ZEsLqaN2tUrB7RVxpEabni9lxAlPq+1BkskkBgcHi0qjadFbHLFITXd3d8GBqUal1WRZxujoKCKRSNY2+XLFkUewYgaRXT+3EoIm8tQlxrqz/H6/Ej2RZbkqqQNZljE0NIRkMommpqaqpEgIIZAkCY8//rjyuRd6vZ5onxyZV838/DwAKAtPc3NzXS7ApaCHyCg0NLehoUGp/9IrMliv4qicWilt1E7tiK5Owak7s4xAluW69vUpRtwVM+LkBz/4Ae69917dxNGf/dmf4dOf/jQIIfjgBz+Il7/85RVv00hMewVUekNgrfHluivrKVBYpOb8+fNF1ZkYUZAdi8XQ19eH1tZWnD59Ouv5LbeO5FcajuB3kn2QKYWws90klSESghc50gNqmYeTy+XCtWvXlC9vKYNnyyUWiykpvJ6eHjz22GOG7o8RCAQUv6ZCg3KNXgAJIRlP6clkEn6/H4uLixgeHi5rYa/Xehi90A7NDYfD2NjYULoKPR4PfD5fRUNz61Uc6RF9yeaIXo0U3F6MHBUiW23Yd7/7Xfzpn/4pRkdH0d3djdbWVjz3uc8ta9boI488gq9+9au4c+cO1tfX8axnPQvPfe5zTR2RMq04KhdKKWZnZ7G4uFhSGk2LHuKIuS1Ho9GiDA0ppfhsZA5/E5rE/IFtPH3jJ3h302lczVKzUwp+vx9DQ0M4c+YMfD5fzteVexN+paMTP3Ju4AvRBciUQiSAQAj+3nMZPtGmFJ9nE6pG3/gDgQDu3r2rvHdKaVUWdZbKZR07ZsNqtWb4p6gXdkmSMhb2bAtFPS7YRqJOWzCn42AwiPX1dUxMTMBqtSr1X6WkiOpVHOl93NVMwdVLt1ou9PA5crlceMtb3oK3vOUt+OAHPwiHw4GFhQW8/vWvRzAYxE/91E/hzW9+M06dOlXU9m7evIkHHngATqcTPT09uOeee/CTn/wEz33ucys6TiPZU+IomUxiYGAANput5DSalkrFUTQaRV9fH9rb24t2W/7DrSF8IjyDFJUhE4pHYuv4cdyPf219Gm7YSl9gKaWYnp7G6uoqrl27ZtgYBYEQ/KXnIn694Sh+kNhAA7Hgfzja4RasWFpawtTUlO5jQIqBCZSrV68q3RlGLzQsfSdJEnp7e/GTn/zE0P3pgXZhV7cEs44tFlWqtmu7XlRbZIiiCJ/PpzyMxGIxbGxsZKSIihmaW6/iyOjoi5EpuHrtVmNIkqRr2jESieDGjRt46Utfine84x2IRCL4wQ9+UFLq8fz583jPe96Dd77zndje3saTTz6JtbU13Y7RCEwrjkq9IVSaRtNSiThic8nOnTtXdNRgVYrj4+FpUApYiIAUZFiIgBiV8Qebd/Fw2zNLOgYmFJnxXTWehE5aG3HSmg6TMg+hXPVNRiLLMu7evQtZltHb21u1Gx2zB2hvb8fhw4frclEDnmoJZp18rGOLdbl4PB4QQkxnmGhmHA5H2UNz6/E6qraoy5WCY+aIpaTg9kJaTc/jj0QiGekvl8uF5z//+SVt40UvehF+/OMf4/r16zh37hzuueeevFkMM2BacVQseqXRtJQjjiilGBsbw9bWVslzyW4lg7ASASlkpnysILiVDJZ0HPnSWNWAiQSfz2fYGJBcsPqiAwcO4NChQ1XbNxs/Uok9gFmjBNqOrWAwiNnZWayurirDcktNF+1nih2ay+Zr1SO1FBiVpuDqXRzpHfnSq5X/fe97H973vvcBAO655x6cOXOm4m0aSV2LIxYdsdvtFafRGFEq4S+3x/AP4TlsdcbwYv8T+KPmMzhiyd/dxOaCtbS0lDWXrIVYIe/Uw6h/VwYyOr4Ksbi4iOnp6ZweSkbDxoAY7SGUDVZfdPbs2aouLIuLi5iZmanY4bsehAVrX4/H40ilUmhra8uYq6VOZ5jJLsCswhPIPTR3dHQU4XAYo6Ojyjmtl3SPmc53qSm4ehdHRsxWq3QtSaVSiMfjaGhowMc+9jEcPXq0YPduralbccSe1I8fP44DBw7osk1KKV6+/ihuJYNIUhmUUHwpuohvxlfxaPuz0S1mr7dgBc+VCIIbthb4RBsWUzFYdzyD0jcY4Jddhwr+vrpVPZ+HUjGUc2NTjyFR1/hUA/W+jayt0sKsEVjBfb21/27KScQgo53YSv68WWejw+FAV1cXurq6MtJFs7OzVfEB2mtoh+Y+9thjaG1thd/vzzD2NPvQXDMLDHUKTm1xwVJwqVQK29vbcLlcpn0P+dBbHLH5g5UQiURw7do1RKNRXLp0CZ/61Kd0OjrjMO3dPNeXXp1Gu3z5sq7Ond9NbOB2chMpKkMAgQwKAUBITuGvtsfxF56Lu45lcnISGxsbFS/KAiH4kvcGXr7xE2zLSUhIn4Nn2314R3P+jgDmNt3Z2VlxKokteqVsg5kcsjEk1Xy6lSQJd+/eBYCq7juRSCiRwlzWCGZlQ07gA+EJ/CjpBwB0CHb8nusYnmGrLNqmTmccO3Zslw9QY2OjUtjN65WKgxCSkWJjxp6zs7MIhUKmHZprpshRPrQWF6lUCk8++SQCgQDm5ubqYhacFiNqjioVR83NzRgbG9PpiKqDacVRNoxIo6n5cXwDESrBonF7lkDx3/H1jJ8lEgn09/ejsbExr+txKZy2NqG/4358J76OH43dxctP3IPLzvwLVjnF3/lgHkvFvh82RPXgwYMVhUnLuZkyUdjV1VXQWFNPWE3XiRMn0N7eXpV96oVEKX57exCTUgQ+ko5RBmkSbw8N4WPN9+CcRb+OQq0PUCgUwsbGRsaAV5/Ph+bmZsOf0OtlsS5EvQzNNXPkKB8WiwUWiwUnT56E1WrdlYIzqxhVY9aao3qjbsSREWk0LV7BBjsRIGl8cCiANuGpLwKrqzl58qTui6OVCHieox2e2AzOibnzvJRSTExMIBAI6DqrqxQDSibMzp8/D4/HU/Y+y4lWsVSmXqKwWJihZ61quirlVmoT01Ik43puhAVxmsA/Refx/qazhuyXEIKmpiY0NTVlDHhdXl7G6OioUoTs8/mqlhatdwoNzbXb7RkWDNUUh/UsRtXCTpuCY2ljJkY9Ho8yn8wsYlDvtJokSXVXMqAHpn3H7IvF0mhLS0sVF7wW4lXOLvzh1hCSSKfVAICCwkFE/GbjsaoeS75uORa1ampqwvXr13U3WyskjtRjQErtysu1z2KNGdkA15WVlarWF1FKMT4+rnQimqnYuBQW5BiyfboNRMSoFK7acaiLZNVFyMPDw0gmkxmLjh43+nperIul0NBctbdSNRa7ej3fuaJeajHKUnDM6HN8fBw2m02JKtVy0LOe4mg/fG9yYVpxBOxOoxmtzFtFOz7rvY7X+W+CAEiCAkTArzUcwQstrbhz545iMGn0sQiCkFUcsQiaEVEroLCFARsD0tDQkDEGpBLYCJFCX2htbVO1ntRSqRT6+vrQ2NiIq1ev1vXNokuwI9tZC1MJlyzNWf4lN3o5jWuLkJm7NEtnqBedeqn7MAOFhuaqvZX4Oc2kmPOh9QOLRqMIBAKYnp5WiphrkYLTW9DsV4FkWnFEKcUTTzyBw4cPG5ZGy8bzHO2YPPB8PBxfxcDkOF579BLaJAGPP/44jhw5UtZcmXIQRTEjgsM6shYWFgyNWuWLHLFam2PHjun6mRQTrYpGo7h9+3bFtU2MYr/w4XAYd+7cqZlnlN5cs7hxUHRiVorCR6wQCEGEpsXwLzoPFr0dI2+WWndpdd1HNBqF2+1WWq9LiYDsxxs8o5ihuSytWU6KnlKKOTmGwdRWuplFNHZeohlxOp1wOp3o6urKWg/GoqGVzNorlv18reuFacURIaSq0QE1DYIFr3R24UhiBVjewMDKStVrTNQRHBYxIYQYUoiuJpdQYWNAjDgPhcTRxsYGhoeHK65tYhRb48Rqqi5evIjm5tKiKmbFQgT8n6bz+NPwOB5PBkGQ9tj6Q9dJXCwxclQttO7HW1tb2NjYUCIgbFHP19q+34fkask2NNfv92cMzS02rUkpxZfiS/j3xCoEEFBQbLSEQeKreIG9vhoW9CJbPVi1UnB6XuuJRMK0hedGY1pxBKQFQq1uapIkYWtrSxlBUe2CNCYYwuEw+vr60NPTg4MHi3+yr3S/DDY8NxaLVeyflG+f2T5n9Ww4I4rO1cJ7VYpjSYqhx+JEC7FiamoKGxsbutRUFQNznm5ubjb8qbJNsOPDTeexIScQpRI6BQfEOnnSFAQBHo9HEcksAmL21nYzo56t5zjYgUfjftwKbaJzcxHtkxNwWvMv5KNSGN+Ir6JHdR2RFMEXYks4b2lCTw5/uP2ENgUXi8Xg9/trnoIrxF7qVCOEWCmlyWJfb2pxxJ7wqw0TJA6HA8eOHatJpb4oitjY2MDa2houXLigjBowGrU4YmNAWltbix6eWw6s5kiNJEkYGBiA1WrVPYKovq6iVMK7N+/i4dgqrIQgRSmeuSXiN6R23WqqCkWpEokE7ty5A1EUMT4+DqvVqnQZGVlj4xMquwmbIRqjjYCou4kopUpdjd1u56mGAtxKBPG3sRlQSmGxE8RtMk53tOA3hC5EA5vKQs4cpb1eL6xWKx5NBuAgQobAtoBAIsDt1BYXR1lQm6dqU3CSJGVYMpTysKR3fVAoFKqaOPryl7+M3/zN38Tp06cBAN/97ndfA+BvAQzuvOTZAH4C4DKAfgASgBSA/wkgBOAVADwAvg7gBoAGAEEAPQC+DOAPCSF/QyntK+Z4TC2OagFLH124cAGLi4tFt7XriSzL8Pv9kCQJN27cqGpnFBNHbBTHmTNnDB8QqI1WMe+kUqJllFKMpcII0xTOWJvgJLlvKGpx9J7NIfxnbAUtxApQiu1IGP/tEnHCbcU9OhWb57thhUIh9PX14fjx48pAVzbBfWJiArFYDG63W+kyMsv4CDMKDW03kXpm2ebmJlKpFBYXF8uuq6k21RSfESrhY7FZtBArXIKo7H84FcIPHSG8RLWQM0fp+fl5UEqx1EGQcgLUbof6siAUiNPyhnfXiloIfj1TcLIs6/rdDIfDVSknuXXrFr73ve/hgx/8IH7mZ34GoijC6XTeD+AKgPsopZ8BAELIDQC/B+ANAF5CKf08IeS9AG6qNjcJ4FUAAgCaADgopTOEkKcD+A4h5B4AQUrpv+U7Ji6OdmBT5OPxuNKqvbKyUvLw2UphM9pEUUR3d3fVW8YFQcDy8jLC4XDVxoCoxdH6+jpGRkZKipZNpML4rWAfZlIRCAQQQfCuplN4jSu7sFIEoJzAf8RW4CFWyJKEaCyGBqcLLoHgc5F5vKXxOGykMoGUL/q5urqK8fFxXLx4EY2NjUgkEgB2T3Df3NzExsaGMj6CFSvzzq38qGeWRaNRDA0NIZVKKXU17OncTB41tWI0FUKcymgXnhLfhBC0CTZ8N7mBl9g7lJ+pHaWTySQ2A/N4LDYHEtiC1WKF0+mERCkkUNxj0jq2XJihM6uSFJzeBpCRSKQqkaMf/OAHeOihh3Dr1i383d/9Hb7yla8AwGkAIoBrhJDHACwD+N9IR4oIgLcQQp7Isrl3AXge0sJqHsAaISQAYBTpCNP/AvCZQsdkanFUrYuUOS0fOHAAZ8+eVfZbqK1db1i05vTp04hEIlWPWkmShNXVVVgslqqO4mBiZXJyEuvr6yXVF8WphF/y34JfTqCZWEAIQYLKeO/WMA6KTjzDvjvqxQTLmpSACIJUMolkMoGGBheEHTEUpklsyUm0ipVFGLKJI0qpUtN0/fp12Gy2nAJK22XEbpTqQa/V9K6pZ6xWKw4dOoRDhw5BkiQEAgHl6VxtmGikf1kpVHOhpgCy7YqAQM4TTbFarXh222EMRoFbyU0IEsV6PI5VIYnri1ug4gLWvT54PJ66uD7N6OxdSgrOiKGz1RBHv/3bvw1ZljEzM4NvfOMb+Kd/+iccP378FwB8HMAXAUwgHQ3qRFrYbAEYAvAXAJ7UbO7PkdY21p3//hzAOwCsUkr/lRDy2wD+tdAxmf9qNRjmJputE6pa4khtbMiiNQsLC0gmi64dqxiWympoaIDP56tq+oZSirGxMTQ3N5c8iuW78Q0E5ATcwlMRNhsREKUSPhmeySqOWAF4J7EhHo+DgqCpoVEZGhOnEhqJBR6h8qidVhypa6nKqWnSDnpVe9ewFvham9DVA6Io7vKo2djYUAwTWSqzlot6NcXRSUsDRBDEqQS7KiW9Jifwyp2oUS4sRMBvOA/jScsmHk0FIdgpvGvAq8/3Ymvn+pyeni66s7CWmFEcqcmXgpuYmFD88ZioqfQch0KhqqTVvvrVr+L9738/uru7kUwm8YY3vAEA/hmAHcDPAfhtAJ+klJ4ihDyAdKrtDwghHQDerNncewE8BmAdaVH1bAC/C+CvCSFWAE5KabDQMe1bcSTLMsbGxhAKhXJ2JFVDHKVSKQwMDMBms2UUHouiiFgsZui+Gaxl/cKFC0qHXrUIh8NYWVlBZ2cnzpw5U/LvL0sxpLI82dqJgBkpmvV3WF3PWP8YXtPZii/aNpGgMuxEQIxKCFMJ7248AUuFKTW2LyaOYrEYbt++je7ubl28mrRRpXg8rqTfIpFIRq2SEQu8GQqy9cLpdOLgwYMZhokbGxuYnp6GKIrKol5N0VlNcdRILPhlRw8+Hp2FgPQDRoRKOCK68Dx7W8HftxABvbYW9Npa0qapqSAsO+ct19DcxsZG5byapUPL7OJIizYFt76+jpmZmV0puJaWlrLq7KpVc2SxWPCxj30MnZ2daGtrwyc+8Ql897vffRmldIsQci/S6bD7CSHfAuAF0EIIeRqAOwC2NZtrAvAHAI4CuAtgm1L6TkLIXaQjTY8WdUw6vTdDMOrGEIvF0NfXB5/Pl9fxWBRFpQ7ECJipYjZzyVJmnJWLej4bE4ihUKhqESsmytra2sqej3bS0ghLlqLnKJVx2Zq93iGZTGJwcBDnz5/He1pa0BOZwSfCM/DLCXgFG97WdBKvcXaXdTxamDhi8/jOnj2rLBbZXlsJdrs9I6qk9QNitUp6LPBmfOrPRylCI5voZNEP7fBRI2sCq13/8kybF4dEJ36U9CNIUzgvNuG61Q1HnuaGbOQSGNqhudpBxGaYU1Zv4kiLxWJBU1MTTp06lZGCGxwcLKsLLhKJVEUcvfjFL8Zjjz2Gd73rXfj4xz/OAgMvJIR8Aek6o1cj3bn2dwDuRzoa9B6kM8J/qNncHwH4AYDjALoBvHPn53+LtJgq6inc1OLICJihYDFdWEZGjhYXFzE9PY2LFy+iqWn3JHSjo1bJZFIZiaGez1YtUaaezca6XsrhXlsLzlibMJDcQjOsEAFs0xRsIPi1hqO7Xj8/P4+trS1cuHBBESlvbDiCN7gOI0IluIgIQccFiRCCpaUlLC0tVa3AHdjtB6Re4Fk7NkvB1UMtSC3RLurqbi0ASvRD7zEctSgO7hGd+DmxsgcDSmlBgZFtEHEwGMTa2ppSA1aLkTGSJNW1OFLXHBVKwbHmjnxp+FAoZMiYqmzcuHEDf//3f49QKISXvvSl+K3f+q0EgNcC+CqldIUQ0gzgAICzAC4gnWpzU0r/aOf9vgkA3Yk2vRPANwG0A/gfhBABwO8jbQXwO4SQ36SU5l3o9s1dkS3IGxsbRQ8sNUKgsK64RCKR11TRSJHCIlbHjx9HR0dmPYHRoiyVSqG/vx9Op1Opucnmc1QsAiH4/1qu4s+3R/G16DKSkHGP1Y13NZ3CKetTTzzMzDIej6OtrW1XGF8gBI1E368Dcx6mlNbESFSNeoGXZVnxA5qdna2LWhCzkK1by+/3Y2FhAVtbW0rNntfrrdguwAydU+VQTjt5tjllfr9fsbNQeysZ+T3Su9ur2uQryC7UBcfSnOprt1pptc9+9rP4u7/7OwDAC17wAvbj30NaDK0TQl6JdPfavwOYRrqgegbA5E7a7VMAfABeTQh5DYBfQDp99iMAbwFwCsCPAbwOwEcAfAnAz+Q7JlOLI71uDIlEAn19fSUX/OotFKLRKPr6+tDR0ZHRFVeNfTNYxCrXGBAjRRmbU6ZNI1a6z2bBij9zn8f7ms8hCXlXGoCZLPp8Ppw5cwZDQ0OG18uwyBwhBGfPnjVVdEYQBGWBP3bsGBKJhCKUQqHQLpO/vYBRQsNqtaKjowMdHR2KGN7Y2MDdu3d3pTFKjUjUsziqNPqSbWQMq1cihCjXZ3Nzs67nqN7TaqV0q2m74Fia88knn8Tv/M7v4Nq1awCAq1evVnxcn/zkJ/FXf/VXAIC3ve1tePDBBzP+/bWvfS1e+9rXan/tWUVufpoQchHpqBHd8UL6JUrp5s6/f4EQ8jRKKas1ejMh5EihjZrnjm0QrD2+nCn2egoU5t9z7ty5ouprWNeBXqgjJ7WIWLGuwGxzyvTap0gIRGTeGLa2ttDf349Tp06hrS1dWFpJpKoYmAg8duwYlpeXi/69Wi2GNpttV9poY2MDc3NzIIQotUraqNJeKsjWA/UYjsOHDytpDHbtOxwOJapUTHq1XsWR3setThEzMR8IBLCwsIDh4WFlaK7X6y0qI5CPehdH5R6/Ns358MMP45vf/CY+8YlP4J3vfCc++tGP4nnPex6e//zn45577inp8w0Gg/jTP/1T9PX1QZZlXLp0Ca94xSt0mZPJUKfIKKWPZfn3RzV/ny60zT0rjrK1x5eKHuJIXV9TrH+PLMv4jhTALdsWDqRiOGCp7AvPCtDb2toKjgHRWxyxou9gMJizK1AQBEOKwJnb+eXLlzO8OnLNctMDVmR+zz33oKmpCSsrK3UlItRpI7YQaWeX+Xy+unpPQG2EhjqNQSlVUkWjo6OIx+PweDyKXUC2p/16FUdGCwybzbYrWuf3+xWTz1KG5mqpd3EkSZIunX/Nzc141atehW9961v48Ic/jM7OTnzzm9/EBz7wAfT39+PLX/4yTp48WdS2nE4n3G43IpGIMtLHLF5i+TC1OCr3xpBMJjEwMAC73V7RXK5KxZG66LlYT5tH4368fONRbNMU0Ax8YOVhvMxxAJ9rKc3/h1HqGBA9xVEymUR/fz8aGhpw9erVnMev9ww9SilGR0cRDoezRsmMmNnHxPjq6mqGCKzVfEC9yDW7jLnHs8iS3sXIew1CCFwuF1wuFw4ePAhJkhS7gMnJSVitVqXuixUg16s4quZxq6N1zNwzGAwqRqnFFB2r2QviSM+aKVZz1N3djQcffBAPPvhgyeuD3W7HG9/4Rhw5cgSUUnzoQx8yjXVDPkwtjspha2sLAwMDOHbsGA4cOFDRtioRR5ubmxgYGMCJEyd2FT3nIiHLeOH6jxCDDIK0PzoF8LXYMv5oexgPuc8VvX9KKWZnZ7G8vFxS5EwvccRmhh09ehSdnZ1V2SfwlCBtbm7GlStXst4M9Y4cybKMwcFBCIKwq6atVHFk5gVR3f3S1NSEQCAAp9OJ+fl5bG9vo7GxUVmI6uHmV0tEjQdQNudzl8tVl8K6lgKDGaGyB8FsozeY91e2a3QvdavpATtnako9P0888QQ++clPYn5+HpIk4f7778eznvUsXLx4UbfjNII9I44opZifn8f8/DwuXbqki+V5ueJofn4ec3Nzu9I5hfh4ZBpxyBAUr2aatu8HxcfC00WLI+bCzMaAlHIx6yFUVlZWMDExkdOmwIh9Ak8JskLCWM+ao3g8jtu3b6OzsxOHDh3Kuq9iFjhCSN1FmURRzBpV6u/vBwDDimbLwcyiE9jtfL69vY2lpSUEAgE88cQTyrmshwidmc61tuhYOzS3paUFPp8Pzc3Nyn2onrvV9BamenSrfetb38ILXvAC5UHgBS94Ab75zW9ycVQN2DBJQghu3Lih28Vd6hdckiTcvXsXlNKyjmMsFcp+HEhPzS6GcibaqxFFsWzhQCnF+Pg4tra2lOG9xaCHWFEPcS0kyPSKHLHoYL6UZb0JnnJRR5W0Le7Dw8M8qlQCrJuQ3X+OHTumLOj1EKEza2oqmw1DIBDA8vIyRkdH4XA4lNfUK3pHjiKRSMX1QWfOnMH73/9+xGIxpFIpfPvb38b73vc+nY7QOEwtjooRJ6FQCP39/WWLAb1gooSNICjnyelZNh8+Fp4G3YkYMSiAVqHwTZB1xZQy0V5LuV1yLJ3V1NSU13U81z7LFRCs4D0QCChDXAuhhxhbWlrC9PQ0rly5kvfmsVfFUaH3pW1x17ohs/oaM0SVzAqLwGjrvrTnUhv9qDVmihzlw2q1or29He3t7UrB/NjYGFZWVrC8vAy3262M3jCTFUc+9BZHsixX/N5f9rKXob+/H6dPnwYA/OIv/iJe/OIX63F4hmL6TzzfTbiQy3S10EOUAMDPODrxe4INq3ICAEX6XVMQAO9tzu14ziI2m5ubOTvCiqWcFBczlSy3zqvctJraUDJfwbeWSgQLG5LLZvIVunHsVXFUCto2YfbEvri4qLRiszoRoyIh9bJgq8l2zNmcpdXRD6fTqQjPStvay8WskaN8sIL5pqYmxeeLFcyz8Tv1kNrUUxzp+Z1597vfjXe/+926bKtamF4cZUOSJAwPDyOZTOb17DEaWZYxPj6O7e3tikUJkBYJt9qfg5dtPIrbybR/VQNE/FHzGTzYcDjr76gjNteuXav4Yi5VqCwvL2NycjKnqaQR+wSeitQdPnx411y6QpQbOUqlUsq5zlXsnW1f+10cadE+sZs9ElIrilmcLBYL2tra0NbWBkopIpEI/H6/cn+spK29XOpRHDHYseearzc3N5cxNFcPJ3Q90bugvB4fKvSi7sRRJBJBX1+fUgBbjQ8u2wUSj8fR19eHlpaWktNI+WgV7fhR+7ORkGV867Ef4UVPy20Syjrzso0BKZdi3wdrl2cRlEqclEsVR8xQs9xIXTmpQybGjhw5UrD7Tg0XR/nJFgnx+/1YWlrCyMiIYvDn8/kqXoTq7SZf6sJECEFDQwMaGhrQ09Ozq63dZrNVZV5ZPS+opQ7NvXv3LlKplOKEXsuhuYC+40/2+33L9OJIvbisrKxgfHwc58+f19VdMx+sY00dnWLeQWrXZb2xCQI8spDzRrO4uIiZmRndOvNKgY1jcbvdugjDYgWE2kuoWEPNSvbHYMOKyxFjXByVhsViyYgqZRvHUU5UqR4/g0pFhratnZlQMrsAo2pq6jlyVExaKtfQ3PX19ZoOzQX0PfeJRKJmqVkzYHpxBKQ/cGbqp0f6qhTU4ogtzqV6B+mxb4Z6cG0thpnmG1pbLsVEjiRJwuDgIERRLGk+Xq79FSvGmFdUuWIsnziKUwmfi8zjX6KLCNEU7hXd+GVHD45Zqit2y8VowZFtHAerrxkZGYHL5VIWfzOlNsyKdl7Z5uYm/H5/Rk2NHsOH92LkKB+5huaqPauYCK2nWYWhUKjqD95mwvTiKBaL4cknn0RbWxtOnz5d9S8dEyipVAoDAwOwWq24ceNGVZ6MWPqHCaBYLIY7d+6gvb294OBaI2DjOCqpL8pGIXEUi8Vw+/ZtdHd3o6enp+L9FVNzJMuyYstQict6rs+IUoo/3BzC9+Lr8Ik2uGHBd6NreCzuxyfcl9FjMbe9fi0Wv2z1NdrUhs/nyzrktR4XbCOPWVtTox0+3NTUpEQ/Sn0YrefIkZFDc+fm5gAY6/+l5/a4ODI5MzMzOHnypGIgVW1EUcT29jYmJiZ2TZOvxr7ZIs5mBxU7BkRPWOQuEokYUgCfL5LDUpjFDuwthkKprng8rojQw4cPV3TDySXEhlMh/DDhR5foAEAQCm+jQZKxISTwl+uP4zdIZ965W/sddX3NoUOHlKgS6xw1Q9dWpVRT0GmHD6sNPSmlyrlsamoqKB7qUYgy9BZ26qG5ABT/L9apyaKfegzN1Rs9DCDrGdOLozNnzug6nb5U4vE4RkdHcfny5arbBQiCgFQqhenpaaysrODatWtV/wIlEgncuXMHLS0tRXdolUouATE3N4eFhQXd33c+Mba1taV4crAweSXkOl+jqRAAuuPauwmbzYaGhgZYqYSVBhGtcqsyd8tmsynpI6NTufVKrqgSG0bqdDpBKa2rqEatREY2Q09mvbC9vQ2Xy5W3SL6ezrEWo49d6//FhuayUolCw4jzoXeaOxKJ8MgRZzeyLGNkZATRaBRnzpypiY8SIUSpragktVMO7Omxv78fJ0+eRHt7u2H70qbVZFnG0NAQJElCb2+v7pGTXGKM2RKUOval0L6y3bQ8ghVUlhHc3kRDQwPsdhtkmSJGZRyzuOD1PDV3KxqNYmNjA6Ojo7tuoPW6CBmJNqokSRLm5uawurqKmzdvwuFwKE/rZhabZonAaK0X2IKeq1PLLMddDtUUdsUMzWUitBZDc3lajbMLdW1PpcNry4V16Rw8eBCnTp2q6r4FQcDCwgJmZ2d1FQr59sfEip4prVxoBUu5Y0/K2Rfj2KYEEopBbnLCbk3XdCSpjBiV8Wp7ZurW6XQqzuvsBso6Y9hCX4v0Ub10gImiCLfbjWQyiRMnTihic2RkRPECMqPYLEdkJKmMHyb8+H7SjxQoblg9eLbNh0aiz60+24IeCAQyOrUkSarbRdVMQ3Pj8Tg2NjYyhubmqwPT2+OI+TntV0wvjqr9BMLats+ePQuv14vJycmqp/VY3YT6i1ItZFlGNBrFyspK1Qw22WfMZpXpldLKhVqMMZdtl8ulq18VI5sQY3YEH7vwNPxBZASrUhxk599+1dmDZ1hz11apb6Bs5AG7ZpPJZN6iZL3fVz3BhAZzQna5XBleQGqxyZ7Wax1VKlUcyZTiE9FZPJnaQiuxQSQEX4+v4InkJt7WcBxOon/tmiiKuzq1hoaGlIcrt9utCM96GMFhpqiX3W7PGJrL6sDUZqler1f5rus9OoTXHHEApL8UU1NTWF9fz6hxYd1q1ToG9RiQmZmZqgozVl9ksVhw7ty5qt7Mkskk7t69W3BWmR4wwVKJy3ap+wKe6oADoNgRfMl5LwZTWwjJKZyAE26IRd+ctQs981tRFyXzVvf8aJ/WmcP06Ogo4vF4Rsqo2oXxpS7U41IYd1JbOCI4ld87LLowK0VwM7mJn7IZ39TidDrhcrnQ1dWFxsZGZQTH9PQ0RFEsKU3EeQptHZi2AcHhcKCxsVHXaC4XRxwkk0kleqD10BFFEalUyvBjUBsrsjEg5Q6BLQcWtTl16hTm5+erljJhnXDJZBLRayfx+ugAZrcjOG5pwG80HsNP2fWPnBFCFIsIow1FmThiwrOtrS0jXSgSgnusaWPJZDJZ0UBctd+KtjaEGSi2trbyYa95YGJTncLc2NjAxMQE7Ha7UqtktIAHShdHE1IEIsiu32kkFvSntqoijoDCIzhYmqi5uRk+n89U/j/18r3QNiBEo1EsLi4iFArhscce08XgMxwOV7U722yYXhwZfbGyERy5hqaKoohEIlGVYzhx4kRG4bO6ld9IWAicRW0WFxersl8mCFtaWvCoT8AXQ8NwEhENxIKJVBi/FbyDP2s+hxc59a37Wl1dxebmJp7xjGcYXqdDCEE0GsXNmzdx8uRJwxzVs+1XXRvCxnKwFuLGxkZloa+mqWqtKCddks1hemNjA2NjY4jH4wU7i6akCL4eX8GoFEIrseGFtnbcsHpKGtFTSmq0gYiQsfuhJg4ZblI98ZHrXGtHcGTz/2F2AbUSKfVSR6eGRZBZqv348eNZDT5LHZobiUR45Gi/Mj8/j7m5ubwjOIxOqzFhku0YjN53LrftcgbBlgrrhDtx4gQ8ba344tQwmoUm2HfqIpqJFREq4UOhCbzA0QFBh5sle7/RaLRqviKhUAhLS0vo7e2t6Y1GO5ZDPexV62NTyuK9n9AWxrOU0eTkJKxWqyKkXC4XxlNhfCAyARsIWogV23IKH4lNY5124cX24pzlSxV0Fy3N+CJZQoRKcO18jxJURpzKeLpNH4+wYiimqJkQArfbDbfbrdgF+P1+LCwsYGtrCw0NDYp45ynh4mAF2dkMPv1+P+bn57G9vV300FyeVtuHSJKEoaEhyLJccASHUWk1tlAnk8mcxyAIApLJpO77Bp7qCmtra9vltm20OFpZWcHExITitD2ZCiNJoAgjhouI8MsJrMsJtIuV3SBZWqu1tRWHDx/G2NhYRdsrBCu8Xl9fR09Pj6luMtrZUGxhYjfPpqYmZWHKle6ol/SDUbD6GbXdgt/vx/j4OGKxGL7UIQMuEa2OJghEgJUIcFIRX4uvFN09Vqo4ahGseJPjED4Zm8O6nI52iwT4eUcXjonVc1wvJ0qXzf9HO1NPXXxsluM2E7mGztpsNhw4cAAHDhxQHoyyWTG43e6M3w+Hw3XbdagHphdHel+srAiXjaIotH0jUlvMKqCjoyNvu7ooiojFYrruGwCCwSAGBwdzdoUZJY5ytcy7iRUy0t026ghRilIIABor7LJR+zW1tbUhGo0aKv7UhddHjx41PC1bKdqFiXXFzM/PA4ASEal05lYtMXrhU4+MkCQJ/8d/Cy0xCcvBFYiiAKfTCYfDCUmgWJJiOGkpLJbLOeYL1mb8meUMxqUwJEpxTGxAs1Dd23yl7fDZZuqpGw2M8qmSZblur2+g9KG5hw8f3mXFkEwm8Z3vfAcvetGLdGnl/8xnPoP3vve9yt+Xlpbw6U9/Gq9+9asr2m41ML040hP25SqlCFfv1BYbA8KsAvJhhEhhqcR8XWFGFIKnUin09fWhoaFhV8u8T7ThcsyKYVcCPtiUIuYgTeDljk64Kri5r66uYnx8PGMeXKHxIZWQSCRw+/ZtxadpZWWlrtJP2q4YFpJnM7dYES0faZIbQRDQ6miA3SHAR0SkpBSi0SgCQT/WaRLLKxa0eDvQ0tKS9zyWK+icRMRFS3Mlb6Ei9Bai2kYDFqVjHYWVuEqrqWdnb6A4caRFa8Wwvr6Oxx57DO95z3swMjICSZLw6le/Gg888EBZ45te97rX4XWvex2AdNPPs571LLzsZS8reTu1YF+II22LfCkFqHqJI0oppqensbq6WvQ4jHL3fTMRwEdCUxhObeOI6MKbG4/hmdYWZZTCjRs38n6JRFHUvSX0zp07OHr0KDo7O7O+5lc2G/DZDgf6klsQKCABeLrNi7c3nSxrn5RSTE5OIhAI7DJ2NCoypo1QAaUJMVmWc4bGa4U2JL+1tYWNjQ2srq5CkiSlg4u3Zj8FIQT/w9aG/xtbxGHBCYtoQWNDI7ZdVtwrOHE+4YPf78fU1BQsFktGrZL6HNZrmsdIkaG2r8hV+8Xq57Tns5jjNtN3r1TUQ8rLpbW1FW9961vx1re+FS9/+cvxute9Drdu3cKHP/xhEELw3Oc+F7//+79fVrfmhz70IbzpTW+qmxoy04ujSm8OrNbE4/EoLfKloIc4SqVSGBgYgM1mK2kMSDkRnEdia/hfwT4AFE4ioj+5hV/1P4EHV634n+4jRblO6xk5Wltbw+joKC5evIjm5txPs00Q8YnmSxinUSxIMRy2OHGiiNRDNiRJQn9/P+x2O65evbrrfBsROcoWoSplX5Sm56xJkqQIN1EUTfUkqy6i9fl8WFxchM1mU1qz2c8raR/ORYLK+Pf4Cv4jsYYQTeGyxY3XODpxuMhammoLjQdsrViV4/hu0g+BAjKAI6ITb3IehrfRpkSNY7GYMi4iGo1mtLfXqziq5nFra7+ynU/274WuyXqPHOkt7qLRKJ7znOfgZS97Gf74j/8Yfr8fjzzySFmNLLFYDJ/5zGfQ19en2/EZjenFUSWw2ppTp06V3UJdqTgKh8Po6+sry2iw1HonmVI8tD0CKyFw7RR8CjJFMhrHF9oIfrfzUFE3LT0iK8xUc2Njo6hoHZvJdMbahDPW8ufYRaNR3LlzR+kqyoae4ohFBNfX13H9+vVd77PQvtgwVFmWYbFYlM9ckiTlPyB9fpj3lVkQBEFpzZZlOcPwL19EpFQopfi76DR+lAygXbDjAHFgQNrGYHgbf9pwBt2iuaaZA4CFCHi9swcvtLdjSY6jiVgyzBkZDodDcUFm55B5ASWTScTjcTgcjrqKzNVS1GnPJ7MLmJ2dLdjSXu/iSG+H7Gg0mlHT5fV68apXvaqsbX3+85/HC1/4wroq8K4LcVTqYkYpxezsLJaWlip2XK5EHLGurAsXLuSNmui17w05gSUpBveOMEokEkgkk/C4GhAmMmZSEZy0Fo7GVCqOJEnCwMAArFYrrl27VtQNRw9BFggEcPfuXZw7dy5vflyvtJosyxgcHIQgCHnfZ65rVy2M2GgLJoAsFgtkWVZew64DSZKU15jpRq5tH47FYop5YiwWq6guZFaO4tFkEIdU4qKD2LEkxfBv8RW8yXW44DZqtWC3CXa0CcWlEdTn8Pjx4xgeHoYoirtME4uJgtQaMwg5QRDg8Xjg8Xhw7NixrC3taq8vLo4yoZTqtr1//ud/xjvf+U5dtlUtzP0NK4NUKoXBwUFYLBZdJrqX8yWnlGJsbAzb29sVDTItdRFvICIICCQAyWgUFECDqwEAhUSBpiILmytJq0WjUdy+fRs9PT05Ize59llJNGd+fh7z8/O4evVqwQ4WPSJHzAqho6MDhw7ljsjlel/ZhFG23wXSItlqtSoiiaXf2J9FUTRdVMnhcCjdW7IsK07Tk5OTsNlsSlSpmG6jeSkGgt3fRY9gxaC0bdA7qD2sWLalpUWJgmxsbChREHYO6ymqVEuytbSrZ5W5XC6kUqm6FUl6iiM9HybC4TBu3bqFZz3rWbpsr1rsKXEUCoXQ39+PQ4cOobu7uybHoB4DUukg01IjRy7Bgudavfh6aAEtog1OW/qJNSin0GtrwYEi0w/l+iuxTrxyRnIQQsqK5siyjJGREcTj8aLFcKVf+u3tbfT19RU9IFcrjpi4UQ9DLQZ1tIhFldQ1SmaOKmk9gTY2NjLml7GoUrbjztWKHqUSDom1HQ5rJOrrRh0FAepjFIeZ0Xp9pVIpzM7OYm1tDTdv3oTT6VQKu6thFqsHeos6vQTS7du3cf78+bordq8LcVTMk/7y8jImJyfLTmHpAZtPdvLkyYwxIOVSagQnEAjgxSMhzB71YIzEEZeTICA4amnAB93ni95OqbVOLI25vLxcdCeelnJSXclkEnfu3EFLSwvOnDlTladnVnh96dKlojxAtJEjSqliKlrJjUwdVQKQNarEXmdEVKmSc611mg4Gg4rPCvOwUS9KZ8VGtAk2rMtx+Eja6iFBZWzLKbzEaYzbtFnI9bmpR3HIsqx4U6lra+rdm6qaWCwWZd04evSoMoCYGfV6PJ6aDSAuFr0jR3rxzGc+E9/5znd02161qAtxlA8WOYhGoxWlsCqlGP+gUilWpKhrrJ59tRfPt9vxZHITU1IEB0UHeq0tJY3fKEWUMcNDSmlJnXjZ9lnKFzIUCqGvrw/Hjx9HR0dxC2QlaAvMS7nOWCdaoTRaJRSKKqVSKd3Tb3rcQLXzyyKRCDY2NpRFiUWV/p/GY/ib2DTm5RgEEBAAv+g8iCs19PMxmmIFnSAIShchq61hQikUChXleM55KvJCCEFDQwMaGhrQ09OjCHjWBWez2RTx6XTuLrKvFXqKo1gsVpXhymamrsURc5pua2szPHKQK2Qpy3LR/kGlUsz7kSRJcWNWp5Wu2jy4Ck9Z+y02isPO/4EDB/LW3ei5TyBtDzA2NoaLFy+iqan8zrZikSRJqWMrtsCcwUSfkcIo2z6B3VEldgxm7oBjHjZsUQoEAulBwWObeJ3TgaivBXZPM0443UWN4GDUY+SoXMdmm822a8Cr2vHcDANezUiue3y2AcR+vx8TExOIRqNwu93wer2GWFiUAputpgehUIiLo1ofQDFk+wKzp8szZ84oF61RsAiO9sLTUxyUA2tb7+rqKmoUSrEUI1SYTYJe57+YmqNCbfNGEI/Hcfv2bXR2duLQoUNlbSOZTCo3rlosRtqokvo/JhrMKJTU7r2UUiWqtDEyi+GdeVs+nw/Nzc2mOm4zofamAp4aQjo3N8ejShqKrdlRj4pR2y/MzMzUPKWppzgy0zzIWlAX4kgNS2+sra2VXd9SKhaLBalUKuOpgImzQm3jRsGKn43YfyFxxFKIxXSG6bXPSqI35bK1tYX+/v6yBSClVHGDfeyxx9Dc3IzW1lb4fL6aPWFmS7+pxVIqlVJeYybBoU51HDp0CKlUCoFAAEtLSxgZGVGmuPt8vqqI5mpgRLRL27GlnaNXaVSpnkblaCmnoFlrYbFXUpr7fegsUGfiKJlMor+/H06ns6L6llJR1+Cw6EU1xZkaNu19ZWXFsP3nEirqzjC9U4j5xBGL0LEIWTVgHlWXL18u6ybBCq9FUcTFixdBKcXm5ibW19cxMzOTERWp1CSxXLKl30oxoKzlQmixWNDW1oa2tjZlivv6+rrSlu31etHa2qos8vWYVjP6mLVz9JLJZF4fIDMcs5EwI9ZK0KY01eKTUpohPvVev/T8PkYiER45qvUBFAubW3Xs2DEcOHCgqvtmaTU2BsRut+P69etVf7Jm0RNBEAwVh9kKwdkYFp/PZ0h9V66ORJa+K2ZQrx7km8lWLKy+R11fRAjJaMWOxWJYX1/H2NgYotEoWlpaFE+bWnXDsGhRMQaUZloA1VPcjxw5smuRZwtRvbRkM6otNKxWKzo6OtDR0aEs7H6/HwMDA6CUZqQxcx1XPYsjvU0Us4nPQCCAxcVFbG9vw+VyKWLJbPPGQqEQjxzV+gCKYXV1FSMjI7vmVlULi8WiiLMjR46UPAakUmRZVmpfDh48aHj0RNuttrW1pVgUlDuGpZh9agXZ4uIiZmZmdO0AzAdz9rbZbFlnshWilMJrh8OhtLPLsoxAIJDRzs6iSrVa0AsZUMbjceVnZqtVyrbIT09Pw+/3Y2NjQ0m/mb3NvZZCQ72wqwXnwsIChoeH0djYqCzs6qhSvRooAsYfu9VqRXt7O9rb25Vop9/vx927d5FKpdDS0qLYBZRz79HzWgmHwzxyVOsDKAa3240bN27UrE4jFothfHwcV65cqUp3lBpRFJUIQznmiuWgFipLS0uYmprCpUuXDH2SUO+TUorR0VFEIhH09vZW5XNn4rPc1F0lHWlqt2MASopocHAQqVQKPp8Pra2tcLvdNVss1TVIm5ubmJycxMmTJ01vQMkW+dbWVni9XrS3tyuztkKhkKlHcpgpCqMVnFp3abVhopk+/1KoprBTRzsPHTqkdGayByS73a5cl8U8GOp97Fwc1Yk4cjgcinFeNWGLdCgUwokTJ6oujCiliMfjmJycxPXr16sWemWRI/beqyFMmThKJpOKw/jly5cNXRzY4qNH4XU5jte5YIXHhw8fRiqVUp7Yh4aG0NjYqESValHgyW7e99xzjyKW1VYBZh+Wqy1INvNIDjOJIzVad2l1umhzcxOpVApLS0t1Vxxfy6iXugYRgGJCOT4+jlgsBrfbrTigZ0v96Z0S5AXZdSKOanGDYDU2LS0tJc0I0wuW4qGU4uLFi1XNSUuShFAoBJ/PhytXrlTl/BNCEIvF8Pjjj1elrozVOK2srGBycrKiwmsmjIy4sVosloxQ/Pb2NtbX13H79m0AUG6o1UgRzc/PY3l5GVevXs1Y9IoZa2IGoaQ9P+o292PHju0ayaFekGoRVTKrONKiTheFw2GMjY0hkUgoUaV6sVwwU0qQ+X2xtPvm5iY2NjYwNTUFi8WiRJWYiDdCHFWr+cWs1IU4qjZsDMipU6fQ1taG2dnZsgexlkMkEsGdO3eUi7OaXUHMedpqteLkyZNV228kEsHS0hKuXbtWlfEvhBCMj49ja2tLl8LratxU1XUgzAl5fX0dU1NTymLe1tYGr9er+3TusbExxONxXLlyJe+2izWgZP9ercWomO+QdiQHiyqx7kIWVapWd2G9iCMtVqsVhw8fViKfgUAAy8vLiuWCWYuQzSSO1GjtArLN1dM7ysMjR1wc7SLbGBBBEKqW1ltfX8fIyAguXLgAt9uNQCBQ1kDWcmBzwy5evIj+/v6q7JNZE6ytreHgwYNVEUaSJCESiaCpqcnwwmsjsdls6OrqQldXl/J0ub6+jsnJSVitVrS2tqKtra0iLyoWwWxoaMCFCxdKfq+5DCjVHXBmiCpp0Q56jcViyvgI5oqcL82hB/UojrQCI5vlwsbGhlKEzAYSu93umn/+ZhVHWtQinqWGl5aWsLm5iVu3bunigB4Oh6teRmI26kIcVeMGwWaEybK8y8PHYrEgHo8bun9mbsncn9lTlSiKhket1O3r1XKeBtLnfHBwEIQQHD9+HNFo1PB9xmIx3L59W4mM1asw0qJ9uoxGo1hfX8fw8DDi8bji+1NKJwxLLXd1daG7u1uXY8xnQGlkUXelaU+Hw5EhRNmsrampKVit1oyokp7HbJbrq1jyHbO6CFkdVVpZWcHY2BicTqdyHmsRVdI7NVUNWGpYlmWIoogj/397Zx4eVXm3/3sm+75PEkISQgIhZGdRUdwQqSKQsCnu2NpFX7W2pX1r7au2Lq32rWtbrVWLb62+ShIoEn6CWK2ioCLZFwLZ99kySWYy+zm/P3if08mQZZZzZs7MPJ/r6nXVhMw5s53nPt/n+73vRYsu8KoiAtSZ15RWjnxEHAkNieEgERH2X26hBcpc/knOhMC6emxirOlKFcVVyHQYiV5RKBSCbx+S7dKCggJ0d3c7XZHju/FaSCIiIpCZmclllKnVaoyOjnJbG8Spe7YLpk6nQ1NTE5YsWSJIPM9c229ib+omERHEd0uv10OlUnFbj6THxpWRbFt8URw5U32xryqReBjb0fakpCSPVZV8pXI0E0TY2U8V2lbqrP8XueNIpY5Oq1Fx5FAMiJACRafTobGxEVlZWTPenc9kyMgXpLcpOzvbo95NRKTYToc5kq3mDiMjI+ju7ua2S3t6epwSY74kjOwJCgqa0U26qakJDMNwVgHE3E+tVqOjowNFRUUeu0A60tQtRqsA4LwQJZ5VJMHd1rOKNM86u73pi+LI1XOeKR5Go9FALpfj7Nmz3OtI7AKEwNfFkf25z1aps39NZ/ps0m01HxFHQlwgZtvGmong4GBBxJFCoeAWIRIMaY9QVSsiCuc6thAMDw+jp6fnAmNHR8JuXYFlWXR2dmJ8fHyaZ9Jsjtwz4enGayGZyU1apVKhv78fk5OTCA4Ohslkcnl6jw9mqyoRwUT+f1BQkMPviaeEhn2CO6mGnDlzBmaz2elqiK+JI74ERnBw8AWhw2q1Gu3t7dzr6Kph4mz4ohglOLIlaF+pIxXPjo4Orm2kv78fGzZs4C0+ZHx8HN///vfx2WefITw8HG1tbT5j7+AT4ohvyFZSeHi4QzEgfAsU0uOjVquxevXqOT8sfIsG0gAtl8vnFYV8XizIxJNWq53R2FEIcWS1Wrn3ecWKFdOeiyPHE2t/EZ+EhIQgLS0Nqamp6OzsxNjYGGQyGVpaWkSR/wbMX1USa1gu8O+RbLK9aXvn7u0eGyEQQmDYVpVsX0eFQuF2dW6mY/kipOfIUSQSyQWfzY6ODnz00Uf4zW9+A6PRiL1792Lz5s0oKChw+XW5//77UVRUhHfeeQdGo9Gnwnd9Rhw5c6c/F2RUPScnB+np6Q79DZ/iyLbHx5F0eT6PTbLZgoKC5hWFfIZ1WiwWNDY2Ijo6elbfJKlUymvPEWm8Jtsd9sz3eQoEYUQgwwghISFYtWoV91xt898MBgPi4+ORkpKChIQEr4kQX+5VshWbM/XYkCkjsfsBzYUntqZmMky0rc7Fx8fz0vPlS1itVreER1BQEAoKCvCnP/0JALBmzRokJCTg0UcfRUdHBy6++GJcd9112Lp1q8PXwpGREXzxxRfYu3cvJBKJz2Ub+ow44oORkRF0dXWhuLjYqf1UvgSKTqdDQ0ODU/lsUqkUZrPZ7WMTsZCRkeGQuReprLh7cSF9TYsWLZpTjPLZc2TbeD1bWO1cYsyX+4uchTiSp6SkICsra9rvZst/I/0K3s5/Axw3oCQiVyzM1GNj7wdkNpthMpl8ZhsC8E7fjn0FxLbni8RwJCUluV1VEjN8T9oFBwfju9/9Lr73ve/BYrHgyy+/xFdffeXUd6ilpQU5OTnYvn07WltbsXnzZvzud78T1fdwLgJCHDEMg7Nnz0Kn07lk+MeHOCKl9OLiYqe8fIKCgmAwGNw69tjYGFpbW+dsOp/puO6KFWf6mvjaVputp8me2cRYIAmjqakpNDY2Ijc3d95AYV/JfwOmf3ZJNUmr1SI0NBRmsxlBQUGiqyjM5AdUX19/QXYZaZoXK97u25mp54sMGBiNxmlVJV8b25+LmRqyXYVl2Wk3jsHBwbjssstw2WWXOfU4crkcra2t+PLLL5GQkID169fj/fffx5YtW3g5T6HxGXHk6rYa8WpJTEx0OQrDnYWbNARrNJp5+4tmO7Y7wqy/vx+Dg4NYuXKlU3f47hyXZVn09/djeHjY4Uw4d8URy7I4d+4cJicnHQqrnenzZGtOKLbFk280Gg3a2tpQWFjokvGmmPPfgOnvX0dHBzfi7Avbb6RpPiwsDCtWrOCyywYHB9He3o7o6GhOAIith0NsE1+2MRykqkTMPENDQ6eFu3oyiYBvnO05cgR3Ra5MJsPKlSu5toZrr70WZ86c4ePUPILPiCNX0Gg0aGlp4WJAXMXVD4nZbEZTUxOioqJc9hBytYLDMAza2tpgtVqxevVqp784rooVclyGYbB69WqHn7M7PUekjysyMtJhAWxbOQqk/iIAGB0d5aprfGyJiSn/zRar1YrGxkYkJCQgOzubO7atAaWtU7dYrQJss8tYloVWq4VSqURjYyMAcAafnn59Z0KojEE+sK8qkWktEu5qNBqhUql8sqrE57YaX1vQl1xyCb7//e9jaGgISUlJOHbsGJ588kkeztAz+K046u/vx8DAwLzbK0LhSuP3TLiypWc0GtHQ0ACZTDZtUXAGV8SRyWRCfX29S8d1teeI9FJlZmY65eJMxFggCSMyqahWq7Fy5UpBwlS9lf9mD6kYL1y48ILvn+32W0hICC9WAZ5CIpEgJiYGMTExyMnJgclkglqtRl9fH7RaLWJiYpCcnIyEhASvVJUYhvFKSK8r2PpTmc1mnD59mqsq2bqeR0REiP66wKc40uv1vNh4REVF4aWXXsK1114Lo9GI3bt34+qrr+bhDD2Db3yK4Xj1xmq1oq2tDSzLXhAD4ilGR0fR2dnpdOP3TDgrUkgzcn5+PjfN4YnjTk5OorGx0eXjuiLGSGXQmV4qAhFjgSKMGIZBe3s7AKCsrMxjC74n8t/sIb1Ujrp7+7IBZWhoKNLS0pCWlsblbKlUKvT19U3rEyPp7ULj7Z4jdwgNDeXCtvV6PdRqNVdV8kSWnjvwua2m1Wp5Kyhcf/31uP7663l5LE/jM+LIEUgMyIIFC5CZmenxLynpe3En6d0eZypHQ0ND6O3t5aVa5oxYIVOA7hgHOiuOyHNdsWKFSwurRCKB2WwOCGFErBQSExNdriTygRD5b/aMj4+jtbUVRUVFLt2YCGFA6SlIzlZcXBxXtVOpVFx6u+0CL1R1R2w9R45if94RERHIyMhARkbGjFl6pEHem/5ftvDZkE2jQ87jN+KIpNkXFhZySdp8QioNs30AyUg0SXrn6wvjSGM0wzDo6OiAXq93qBnZERzpdbJ3n3ZHDDraczSfmaQjsCyLhIQEnDt3Dv39/V7rifEEBoMBjY2NyM7ORmpqqrdPZxqO5L8lJyc7PMSgUCg4kc5XJcqXDShDQ0O59HaGYbiqUm9v77T+Gz4XeF+tHM21LWWfpWcwGKBSqdDV1QW9Xo+4uDgkJiYKKjrng89tNRo6ex6fEUezfeGciQFxB1LBmekCODk5iaamJixevBhpaWm8H3cukWIymbim0/z8fI+JMtsmaD7EoCPTiK40Xtti218UHx+P1atXc3fXpCfG1uhQjOVzZ5iYmEBLSwsKCgoEuWHgk5ny3xQKBRobG2fMf7NncHAQw8PDWLFihWC9Nr5sQCmVShEfH899Dkjzse0Cz8e2kb9UjuYiPDx8WlVpfHycq9AFBwcLIjodga9jUXF0Hp8RRzNh6zbtSAyIOxBxZH/hJVtKJSUlgpQi5xIpRJTl5eVBJpPxftzZRJler0d9ff2sYblCQI7pakjubI3X9nfXGo1mWiwB6YnxtXgHhUKBzs5OlJaWemUgwR1s899ycnIuyH+LjY1FcnIykpKSEBQUhK6uLmi1WpSXl3tU0NpXlWz/RyooYhRKABAWFnZBLxi5SbBtRnb2s+OrlSNXRZ39VrG96IyNjRV8K5NvtFot3VaDD4sjvqbBHMW+94dlWXR0dHDbO0Ldrc5WOSJN30KKspmOq1arOX8cT1UjiImlq8d0dCLNvnxOjA6bm5thtVqRlJSElJQUxMTEiHoB6O/vh1wux8qVK0Xng+MKJP+NNB2Tpu6enh4YjUZERESgoKDAqwJkpu03W7FksVggkUhEaUA5Uy+YbTOyM8aJgVA5mgt70Wm/lUl6lTzVIO8KtOfoPD4jjmw/SK7GgLiDrTgiW1lxcXG89hfNhP1jC9H0PRMziSNXDSXdwd3Ga3ccr22NDkn1oq+vD5OTk4iLi5tWvRADRLCbTCaUl5f75CI1HxKJBPHx8YiJicHk5CSSkpIQHh4+bSEXY/6b7dabI9tv3jQktG1GtlqtXFWps7Nz3jiOQBdHtsy0lalWq7kGeVJVSkxMFFVViYqj84jnHXEA0ng8NTUlqDCYCSKOyFZWbm6uxxtcydQRMZUUUpTZiiMyBm42m10ylHQFstCT99rVxmuLxQLAfcdr++oFyW8iTrspKSlITk72Wn6T1WpFc3MzoqOjsXTpUtHelfLBTB5GvpD/Fhwc7LABpVi2p0i1g1RT5wt5Fct5O4snRF1YWNiMDfLEdoFUlZwdDOFbSNOeo/P4jDgyGo345ptv3IoBcYegoCAoFAoolUrBtrLmgoTWenIb0WQycQtRUlISCgoKPPK6ExEYHR2NsrIytxqvhRjTl0gk3DbEkiVLoNfroVAo0NbWBrPZ7PGcMaPRiMbGRmRkZLjUj+VLzOVh5Gv5b3MZUIoV+5DXsbExrkcvIiICBoOBuyHxJTxd8bKvKpHBkN7e3mlVJUfMPPkOndXpdLz3sPoiPiOOWJZFTk6OW8aGrkLuSImxpKdLoBaLBfX19U6H1rqDVCrF1NQUTp06JUjD92wI1XgtJBEREcjKyuLS1W1zxmJiYpCSkoKkpCRBPjdarRbNzc1YunQpd3fvrzjrYST2/DdgdqsAlUqF4OBgmM1m0RpQBgUFca8hy7KYmppCc3MzOjs7LwjLFdu528O3wHAW28GQmcw856oq8S3saOXoPD4jjiIiIrzy4SWVk6CgICxYsMCjwohlWa7p9Morr3Q6tNYdJiYmMDIygosuushjVTKLxYLTp08L3ngtJPY5YxMTE1AoFFxDJtl+42OCTKVS4ezZsygqKvL7HgF3PYzEmv9mC1nglEol+vv7UVxczA1kiN0qQCKRICoqCuHh4Vi2bBmCgoIwNjaGkZERdHR0IDIykqvqefI65ihi6pWayczTPiKG9CqFhITwLuympqY81ssrZnxGHHmDiYkJNDU1YcmSJTAYDG6lxjsL6SEJCQlBZGSkx0QZy7Lo6uqCUqlEWlqaxxbdwcFBGI1GrF271uON10Jhe5EDzpvHEbNS4gidkpKCuLg4py/MQ0NDGBwcRHl5uc/ZDDgL3x5G8+W/xcfHIzk5WfD8t5kYGBjA6OgoysvLpz3X2QwoxebUTb5/wcHBF/hWqVQqNDc3X1BVEsN3VcyZcPYRMZOTk1CpVBgYGAAAREdHT7OPcBetVksrR6DiaFaGhobQ09PDRWIMDg7CbDZ75NhkaykzMxMLFy7El19+6ZE7G6vViqamJoSFhSE/Px9yuVzQ4wHTG6+jo6Nduqvks/FaSMLDw7mgS+IIPTw8jPb2doe3eYgruU6nw4oVK0QzKScERKgL7WFkn/9Gmu07Ozs91mxPqsQTExMoKyu74LnOZUBp29xNfu+t78FM1ylb3yoy+Tk2NoahoSHus08qId6qKompcjQXtsKeBA8PDg5CrVbjq6++QkxMDCc8Xb2RoNNq5/EZceSpuwuGYXDmzBkYDIZp/UVBQUEwGAyCH38mHyEyKSfknQ1JtyeLt0ajEbxSZrFY0NDQgNjYWJSVleHrr792uhmVLBBiqRY5ir0jNNnmqaurg1Qq5cwnbV12GYZBS0sLwsLCUFJS4lPP11nIhKRUKvXoc7X3uhIi/80ecoNgsVhQXFzs0OPOZkBpOwHnje03R6oXISEh07Y4tVotVCoVmpqaAIBb3D3pJ+Yr4sie0NBQxMXFwWKxIC8vj6sqNTY2AnDttaTbaufxGXHkCUh/UWJiIpYtWzbtw+RMAKwrsCyLvr4+jIyMXOAj5EpivTMQk0XbdHtHstXcYWpqCg0NDVi0aBE3fUfy6xxBDP1FfGG/zWM0GqFUKnHu3DlMTU0hMTER8fHx6OvrQ1paGjIzM719yoJitVrR2NiI+Ph4LFq0yKvvLd/5b/YwDIPW1laEhYVh+fLlLj3X+QwoZ7IKEApnRYZEIkFMTAxiYmKwaNEimM1mqNVqDAwMYHJy8oL+GrGct5hgGIbbXrWtKtm/lo5W6GhD9nl8Shw5kr/lKuPj49zUT0pKygW/F1IckQsky7JYvXr1BV9SIY89MDCAgYGBC0wWJRKJYMckYqyoqIjrxwEcF4G2PjHk7tifCAsLm5bdNDw8jLa2NgQFBUGtVnNTQmJsbHWXmTyMxIIj+W/OOKgTEZiQkIBFixbxco5iyH9z5/sYEhKC1NRUpKamTquo9vf3c1W95ORk3h2m+Uy19zSzNWTbv5akQtfc3MyFb8/U96XT6WjlCD4mjoRicHAQfX19KC8vn3WKSCiBYjAY0NDQgLS0NGRlZc34hZ8vBNYVyPah0Wic0dhRqMoREWMzuWw7Io5sG6/9URjZMzExgf7+fqxcuRLR0dHcgtzQ0ABAHFNWfDGXh5HYmC3/jTio2+a/zbQdbjab0dDQwPU6CcVsVgHke+bJqpKzzNQ4TwJeiRdQcnIyL7llpPriizgyrTZThc6272tsbAzd3d3YsmULjEYjLzdehYWFMBqNAIArrrgCb7zxhtuP6UkCWhyRvgaTyTSvC7MQ4kij0aClpQXLli2bczHgW6iQC3NCQsIF24cEvrfyWJblerlmc9me75hinEgTkpGREfT19aGsrIwTkrYLMlksbKesSHSGr13oiYdRYWGhx7y8+GS2/Ddi4UBEbGRkJIxGIxoaGrB48eIZq9RCMVtViXyvyFCD2CbgCPYh0fa5ZbZhuc5eG3x5W82VUX77vq+zZ8/i+PHj2LVrF0ZHR/Hoo49i48aNbvn6GY1GnDt3zqW/FQM+JY743FYjF6iUlBSHnJ/5FkcDAwPo7+93KDOMz8oRCeydL/6ET3FEGq/j4uJQWlo662s91/tr23jtqxcxRyGTSxqNBitWrJj14mS/WGg0Gs6tmERnpKSkiH7Un/RXuephJDZI/hsZqCAWDmfPnsXU1BRMJhMWLVrk9erYfFUli8XC/Ruxfedmyi1TqVTo6uqCXq9HXFwc5zDtiHDwdXHkTqVHIpFg6dKleOKJJ8CyLC699FKUlZXhjTfewA9+8AMUFBRg27ZtuOmmm5x+XF/Gp8QRX5CKTX5+vsOO23yJI9vtrIsuusihLy5flSOFQoGzZ886FNjLlzgijdc5OTlIS0tz+pj+1HjtCAzDoK2tDVKpFKWlpQ5fsO2nrEh0RnNzM6xWq9P9MJ7C1sPIH3uogH9bOMTGxqK5uRm5ubmYmprCV199Jar8N8C7vUruEBYWNs2OgYTldnd3IyQkZFpVaSZ8WRzxvSUYFBSEHTt2YMeOHWBZFs3NzTh79qxTj6HT6TA6OorFixcjOzsbzzzzDFavXs3bOXqCgBNHpGIzV3/RTPAhjmxzymbbzhLi2KQSoVQqsWrVKocWIT7EEbElsG+8dvSYgSaMzGYzmpqakJiYiOzsbLeer210hn0/TFxcHNcP463tN5Zl0d3djcnJSUE9jMSCWq1GR0cHysrKpl13xJj/BjjWqyRWoSSVSrnsQ+B85U6lUuHcuXMwGAzTwnJtxaDYnoej8OmQbf9YEokExcXFKC4udupxoqKiMDExAQDYt28ftm7dyplW+go+JY7cuViQO3KLxeJwxcYWd8UCcduebRpuvmO7Ko6sVitaWloQHByMlStXOnwBcPfC3N/fj8HBwRkbr2fD9jUOtP4ivV6PxsZGLFq0aM7tTleYqR+GxHF4yuTQFtLrJ5FI/N6vCQDkcjl6enpmdDO3z39TqVSizH8DplewZzOgFGNobnh4+LTpT41GA5VKhc7OToSFhSEpKQlms5mKI5yv9PM9xr9z507cc8890Gg0LsVCeQufEkeuQibCUlNTXb4jd+cCPjw8jO7ubs5t21lc3VYjzzs9PR1ZWVlO/70rkG1D0uTuzJeW9BwFmjCamJhAS0sLli9f7lCFzR1s+2GWLFkCvV4PhUKBtrY2mM1mwSsXYvIw8gSzxYHMRHBw8Ixj7GLMf7M3oLRardBqtZBIJJzQEGtVyXb7eWpqCmq1GlNTUzh9+jQ33s6nyafQ8GlDoNVqecl9HB8f5yqh/+///T/Oq82X8HtxRDx15psIEwIyBaDVat3q+pdKpTCZTE79DfFtKigo8Fhau9ls5hY+Z7YNCVKpFBaLBRaLRZQXViGQy+WccPZGM3JERASysrKQlZV1QXJ9TEwMUlJSZh1HdxayrZyRkSHo+LoYIFvZ4+PjM8aBzIeY899sIdtvBoMB7e3tWL58+bQ2ADFbBQBAZGQkIiMjub43Eh1DhhpIr5I3+8Hmg8+eI76iQ9RqNdavXw8ASEtLw759+9x+TE/jU+LI2cW2r68PQ0NDDk2E8Q0RCrGxsSgvL3frTs/ZytHQ0BB6e3ud7qtyB51Ox40nz9d4PROkSqRQKBAREREQ2T59fX1QKBS8Baq6i31y/cTEBBQKBTcqTbbfXPlM+ZKHkbvYxoGUlJTwIgrEkP82G8SGoaSkhKuMh4SEXGAVQP6/GK0CyHkRMcSyLFdVIu0YpKrkSlC0kPC5rcaXOMrJyUFnZycPZ+Q9fEocOQpxnGYYxumtHT4g4/KuCgV7HG3Itg1xnc+3iU9UKhXa29tRXFzskkcNabzOyMiAXC7nGifdSa0XM8TzyWKxoLy8XJTPTSKRIC4ujtvmI+PoZNLSmffG1z2MnIGPOJD5mC3/ra2tDSaTSZD8t9kYGxvDmTNnZqx8+roBJekHy8zMhMViwdjYGEZHR9HR0YGoqCguisPbVhl8iiO+ttX8Ab8TR444TrsKyf6a64tMFndHxuUdxZFmcPsQV0/1JPT19WF4eBirVq1y6SJh218UEhIya2o931s83sJqtaKpqQkxMTHIz8/3mZ4bMo4+03szV+Owv3kYzYUQcSCOIHT+22yQytVMjeb2zGdA6e2q0nzfw+Dg4AuiY1QqFVpaWsAwDBfwah/F4Qn4nLTjq3LkD/jUKjPfh46UQIXqsyEVnJk+iCzLoqurC2NjYw6Pyzt73Nlwd0trLmZL2SYTR2azGatWrXLpzmWuxmv7HCuyxdPT04OQkBDO4NCXFlxiPJqZmSm63DBnsH9vtFotFAoF6urqIJVKufdmbGzM7z2MCJ6KA5kPvvPfZmN0dJTbunflvRWbAaUzU3a20TFkylCtVnNRHI4GvPIJX4KM5qr9G58SR7NBEu2Hh4edGh13FiJS7O+OLRYLmpqaEBERgRUrVvD+ZZ5rlJ9sdbi6pTUXpNfJXvjYxo844i4+EyzLOtx4bbvFk5eXN20bgUxYpaSkeOWuzVG0Wi0XbOypBnlPYJvZtHjxYhiNRiiVSjQ0NMBgMCA9PR2Tk5NISEgQ3dYJX5BqtafjQObD3fy32RgaGuJ6Ofmo4vq6AaV9rx4JeG1qagIArqokNgPWmRBilN9X8XlxZLVa0draCgCC9xfNVMEhDtDZ2dmC3THO1JDNsix6e3sxOjrq8pbWfBBRZvuakirVfPEjs8GHsaPtNgLxhunv7+cMDlNSUrw+xWOLSqXinMn9/cITEhKC8fFxJCQkYOnSpVykSUdHByIjI7nGYX+pJOl0OjQ1NSE/P58zHRQrs+W/9fT0IDg4mNt+m+sz2t/fD4VCIahxp31VyfZ/pMrMp1Dic1tqpoBXtVqNgYEBTE5OIiYmhqsqiWEIwx6tVksrR/+HT4kj+4VUr9dzpezMzEzBVbm9OCKNyI46QLuKfeWINH0C5wWhUHdS9r1OfDVe8+l4besNQ2IDFAoFOjs7RZEvNjAwEDBbS6SfKi4ujvMwsp3+IVs8DQ0NAMTh2+MOxJ+qqKjI5xYUW7+rvLy8aflvxEWahBiT60t3dzcmJiZQVlbG/UzFmFBvHkefVY9oSTBKg2ORFxwFKU/v50zbb7ZiiVSfg4KCXL4OCumOHRIScoF3FbmZI431SUlJovkO6HQ6v7fZcBSfEke2kIV6+fLlHrtjI+KIVG3kcrlgVRv74xKRYjQaUV9fL0jDuT224oiPxmuho0DsYwPIYtzU1ASGYTih5IkLEcuyOHfuHPR6PVasWCGaKpZQzOdhZL/FYzKZuOwr4ttDFmNfeK1IHEhpaalfTPfYNtwzDIOxsTFOLIWHh3Pb68XFxdOE0T/0wwiRSJEsCYURDP5pUmCcNWN1KP/X5Jm232y33lzdfvNUdIitdxX5DqjVavT19UGr1SI2NparKjm6Xcm3I/nU1BRtyP4/fE4c2W4nCdlfNBNBQUFc/lVQUBBWrVrlkS8VEWUkgsRThpbElLG1tRUWi8XlKpW3HK/JKO6iRYsuWIwTEhIuuDPmCxLZEhERgeLiYlHcEQqJKx5GoaGhSE9PR3p6Oufbo1AoOPM9MYSxzsZccSD+gFQqnVbxa25uhtlsBsuy+PrrrzkX9fpwE0IkUiRJz1dEIxGEDGkE6s0TWB4cgyipsMsLqSoFBwdPqyo5a0DprVy10NBQbpuTYRjOEb2vr4/zXEpMTERUVNSs1xA+x/iB8zeU/r717yg+JY5I2V4qlQq6nTQbxJ8mOzvbY3EcwPmLgNFoRHNzs0eNHQGgtbUVMpkMOTk5bjVeA/DKBYhgvxiPjY1xvTBRUVFcL4y7fQAmkwmNjY1IS0vDwoULeTp78UK2ltzxMLL37bENY7VarbxNWPHB4OAghoeHHYoD8XXI9n14eDiKioogkUim5b/9i5FDFhYJaWwcYmJiEBwUjCCJBBIA46wFUR5cXmyrSs4aUIohdFYqlU7zFTMajdzNnF6vR1xcHJKSki6orAohjmjl6Dw+JY6kUim3f+tpyFjywoULPSqMyPaM2WzGZZdd5jGPH61WC6VSiZycHCxevNjpv/fENpqr2N8ZzzaK7uwdFGnOzcvLQ3JyskBnLx6E8jCyDWO1n7CKi4vjJqw8uf1mGwciZDOyWGAYBk1NTdwWEMG2x69sKh6Tej2MWh2UCiUAIDY2FvqYMISGe/f77owBpRjEkT1hYWHTHNHHx8c5sRQSEjLt+sXnZ1Gr1VJx9H/4nDgikxaehCTMZ2VlebSp1mKxoLGxEdHR0YiIiPCYMCL2ACSA1FnELIzsmWkUnVSUbJ2g4+Pj53weY2NjXHO+rzXnusLQ0BAGBwcFbzSfacJKoVBwi4QnYjOEiAMRM1arFQ0NDUhOTp7zRrAkJA4fsmYsjExFWmoazBYLeiZUkMjH0HFGBUV8gmjy34DZrQIMBgOA6YJJTNj3UhoMBqhUKpw7dw5TU1MAzvfgxsfHu/06T01NBcT1yxF8Shx5GoZh0NbWBqvVitWrV2NkZARms9kjx7a3CFAqlYIfk/hFjYyMYNWqVejt7XUq0408hq8Io5kICwtz2qV7eHgY/f39KC8vF2WPDJ+wLMtNLXm60dx2wgo4P62qUCim+V0RQc/X545sLYWGhgoWByImLBYL6uvrHTKzzA2OwiRrxTdmDSABWAmLnEQZrklLRgSkosp/s8W2qjQ1NYWuri4sWbJkmgGlGPPfCOHh4cjIyEBGRgbGxsbQ19cHtVqNrq4uhIaGclUlV15n2nP0b6g4mgXiZiyTyZCdnc2Ni5K7DCHxlEWALUQIkjw6cgFxRhx5q/FaKBxx6TYYDNDpdLwZ4okZ4ooukUhQWlrq9fc3IiICWVlZyMrK4lyKBwcH0dbWxkvcjLfiQLyFyWRCfX09srOzHWpdkEgkKA+Nw7KQaGgYM8IkUiRIQrjPhVjy32ZDr9ejsbERBQUFnOC2rSrZNneTmwCxiSWWZREVFYW8vDwA55+TSqVCR0cHTCYT4uPjkZSU5PDrTHuO/o3PXc0lEong22rj4+Nobm5Gfn7+tN4RRwNg3cETTt/2kDHs5ORkzp8GcCzTjSCWxmuhsHfp1ul0aGlpgcFgQFhYGHp6ekTv0u0OM3kYiQl7l2IiZHt7ezmRm5yc7PAwA3GBT09PR0ZGhsBn732IRUhubq7T/XIRkiBEzFNB9Fb+22yQyvzy5cun3YDOZkBpe9MnJqdu+ziriIiIaZVvUr0jU6CkqjTb2mKxWPxyAtMVfE4cCc3Q0BCXGWR/IRVSHNlu4c2UVeZI6K0raLVaNDY2Ii8vDzKZbNrvHBVH5E7LH6pFjmA2m9He3o7U1FRkZWXBarWK3qXbHebzMBIbtkIWAGdweObMmWl9ZHFxcTN+n4hQyMnJueA74Y8QM11PuXx7Kv9tNnQ6HRobG+edsJzPgNJRqwAhmWtajdgBkMZtUlUimZgJCQlISkqa9XsQ6FBx9H+QMX29Xo/Vq1fPWIoXShyRcnZKSsqsd+VCTFUoFAou1mKmJrz5xJGv9xe5AinF2y6c87l0k6qFL96RueJhJDZsDQ7t+8iio6O5qkVISAj3fH0hDoQPyIRlQUGBx7bwbREq/202tFotmpqanB6cEGv+20zZlzMhkUgQGRmJyMhIrno3NjYGuVyOvXv34pNPPsH69et5bQ3YuHEjFixYgNdee423x/QkVBzh3940CQkJyM/Pn3WRF0IcTU5OorGxEUuXLp0ztJIcm48Pr73D92ylbGICOdtjBJowGh8fR2tr6wWleFvmculmWXaaTYDYXzM+PIzEhn3VwtbGgWEYGI3GaT0o/szk5CSam5tRXFwsmj4TPvLfZoPP5+uMVYCQQsnVNSEoKIh7LZcsWYIrr7wShw4dQl9fH9asWYNrr70W119/PS6++GKXqt9HjhzhGvt9Fck8/TuenZl3AIvFwqtAmZyc5Lxp5iuh6/V6tLW1YcWKFbwce3R0FJ2dnSgpKZn3y3r69GksW7bMbQNI21y25cuXz/nFHR4ehl6vv8DnyN8arx1BLpeju7sbJSUlLk/bmEwmKJVKKBQKTE1NCerS7S6kT6G0tNTr00WeQK1Wo729Henp6ZiYmIBer0dCwvlRdDG+P+6i0Wi4nERfmU4i26NKpRIGg8Gp94cIo5KSEsGfr22PEhFOAASZgOvp6UFkZCQv279msxnXXnstPv74Y3z00Uc4fPgwvvrqK2zfvh2PPPKIw4+j0+lwzTXXYNeuXWhubnancuTVhSWgK0fOiBOAv8oRy7Lo7OyERqPB6tWrHXLatc1XcxXSO5KSksJN4M3FTNtq/t54bQ+xN1AqlVixYoVbrsihoaHTjN2Ecul2F095GIkFEgeycuVKbuvT/v2JjIzk3h9ff01ILlxZWZlPWU/Ml/82W+QMqfh6KgdvvqqSxWLh/o2711D7hmx3IGP8sbGx2Lp1K7Zu3QqWZaFWq516nB/+8If48Y9/zHkw+SoBKY6I6/TExITD4gTgRxxZLBY0NzcjPDwcK1eudLjqIpVK3To2abxesmTJnNt39se0FUeB1njNMAw6OjpgtVpRXl7Oqxicz6WbbP14MirGmx5G82FlWZy1atFongAAFIfEYmlQNILc/BzOFgdi//6Q7dGGhgYA4BZisaSpO4pCoUBXV5fP58LZvj/A9MgZi8XCeV4BQHt7O+8u7s6cJyBcr5KjPUeOoNVqL6iqSSQSp3oN33zzTUgkEtx4443Yu3cvL+flLXxOHLl7ISKu01FRUVixYoVTj+es7489er0e9fX1yMrKcno82J3KEWm8drRCRiDPNxD7iywWCze67mqunKPYu3TbT1eR6R0+zQ3tsfUwEpsLNMOyOGgYRp15HHHS8wKm2TyBkpA4bAtPh9TFzD9H40Dsm4btQ4zj4+O57VExCUp7RkZG0N/f73YFVIzYRs6Q/Lfu7m6o1WokJSVhfHwcwcHBXn/ejvQqOSOU+MxW48Pj6KWXXoJGo8GyZcswPj4OvV4PhmHwxhtv8HKOnsTnxJE7kBHORYsWIT093em/d2dhGhsbQ2trKwoLC51u9rQwDDpDzDCadUiA4xM0ZAFQKpVzNl7PBqlWkbsc8qX1dwwGAxobG5GZmenS58Rd7KerSNAnX+aG9ojdw6jXqke9ZQKLgiK5c0uQhKDRMo4V1jgsDnauh4RlWZw9exZms9klIWgfYqzRaKBQKDgvmdm2d7zJ4OAgRkZGUF5e7vdmpUQEGY1GXHrppTCbzVAoFOjr6+MqTmIYipirquSoAaXYxNGpU6e4/793714cP36cTquJHdI7UFxc7PHJG5LN5oqx49+0vXhc2wFNhBEwD2CZvAuvJZRjacjcY6gMw6ClpQUSiQQrV650qRIglUqh1+thNpsRHBwsukVTCEjj5rJly0Qxyh0UFDSjuSFx6Sbbb64uxL7gYXTOokU4pgtziUSCSATjjEXrlDjiOw5EKpVOc4K23d6xWq3c9o43zUF7e3uhVqtRVlYm6soWX5DcMbJ1GBERgdjYWOTm5nJDEV1dXVzVTwz5b8DcBpTAzFUlPnuOtFqtR7fxxY7PiSNnLzC21ZPVq1d7tJmSbFWYzWasXr3a6S/fRwY5fjrRilBIEMsGgZUAHRYtKlVf4rTsKoRLZ377iG+SbfSJs7Asi4iICERHR+Obb75BWFgYtxD7cq/CXJAJLU9MtLiCvUs3yRYjfRbEJsBR8zxi/peXl+e0K7InCZFIwcwwOGsFi1CJ4wuDJ+JAbLd3iGePrTko8ezxxEJMesi0Wi1KS0tFtVUqFCTLrby8fMZrvf1QhC/kv9m2NtgKJYlEIrrKkS27d+/G7t27eXs8T+Nz4sgZrFYrmpubERIS4nL1xFXIHXlSUhIKCgpcEijPTZ6DBECkNBgWxgwpK0F8UAhUjAnv6odwZ9SFidnEmsCZxmt7SGlXKpViyZIlWLJkCaampiCXy6f59chkMlGKCFcYGBjAyMiIT01o2WaLkYW4t7cXWq123jtiX/Iwyg+OxscmJcwsg5D/E0MWloEZDJYHO2bk5404kJk8exQKBbq7u7mqn1ALse3WYXFxcUBUfclrO5swsse+6ifG/DdynsD5KnJISAgnkvR6PQwGA1iWhdlsdtuAcmpqSjR+V2LAb8URuSsmvRt84UiMx1yRHM7QbdUjDOePI4Fk2r1zl0V3wb+Xy+Vc5cOVD/lcjdeRkZFYtGgRFi1axJWmz549C4PBgMTERMhkMkEbhoWCLCIGg2HexlwxY7sQ2/bB2Lp0p6SkIDQ0lKuQeWuCx1nSg8JxXZgMR40KEOs1FsCGMBnSg+bfTiQh0osWLfJaHIhEIkF8fDzXb0iqfm1tbTCbzdz2Gx/fIZZl0dbWhqCgIF62Dn0BYsdgP3XoDGLLf5sNqVQKk8nE9bCGhYXxYkBJRvkp5/E5ceTIF12tVqOtrc2l5uf5IOP8s33o3BUotiwOisApZhzhCDpvh8WcXxgkAPJs+izcbbwmj+HoRJptaZpcREjDcGxsLNcwLHahQSqLUVFRfnV3bXtHzLIspqamuDF0k8kEhmFQVFQkqobh+VgTmoilwdHo/r+bgkXBUUiWzv85F2sciG3Vz2KxTPsOudN0T3oNIyIikJub6zef6bkYHR1FX1+fW8LInpmc1JVKJWflQMSsUPlvc2EwGFBfX49ly5Zx65t9UzeZgiP/3xEDSq1Wy1XRKD4ojuaCZVn09/cLmmpPxJH9l5Ds76tUKpcFij0/isnDrepvMMVYEAoWDFhoGBOSpKHYGXG+eZZcDKVSqctbh+44XttfRMjWQVdX1wUVCzFBtj0XLFjg16nrEokEUVFRiIyMBMuyGBsbg0wmQ19fH9rb27kQVm9vHThCkjQUSU58jkhzvbM5Wp4mODh4xqb73t5eLubBEc8rhmHQ2NiI+Ph4wXqqxMbw8DAGBwcFncKztdrwRP7bXJBQZFthZIs7BpQ6nQ5ZWRe2agQqfiOOyBQKy7JYvXq1YBf6mYwgSQUiNDSU196mdeEyPBdXhMcm2zFmNYEBi8LgOLyaUIZwaTD3RUlLS0N2drZLx+AzCsR262DJkiUXGOcRoeTt0i0J2/TlMFVnYFkW7e3tYFkWZWVlkEqlnMuw/daBWFy63YW4QHvKFZkvbJvuAVzgeTVbH4zVauXc7zMzM711+h5laGgIw8PDKCsr86g9wWz5b7Zi1tX8t7kwGo2oq6tDfn6+QzsizhpQ0p6j6fhcthrLsjCZTNN+ZjAY0NDQgLS0NGRlZQla5mxqakJ2djbXxEpKnBkZGYJdlBiGwUnVAExKDa4qKAHw78Da/Px8lyeNbKcfhK4aGI1GKJVKyOVyzthQJpN5fMSZLJpFRUUBcSEgHkaxsbFzmlmSrQO5XA6VSuVUxUJskBy8srIyv5qsJFvYSqUSGo0G0dHRXJ9Sa2srMjIyvOLL5Q2Ib5PY7AncyX+bC3IjvGTJEl62vmaqKt11113YvXs3tm7d6vbj8wTNVnMG+4u7RqNBS0sLli1b5pEqgG3liBx7+fLlgvYzSKVSLA+JxSAzCeDffU2lpaW8N14LRVhYGDIyMpCRkcEZG9qOOKekpAjuNTI0NISBgQGfj05wFGc8jGy3DnJzc73i0s0HJA7EH12gZ+qDGRkZQVtbG8LDw2E0GrkICDG/R+7S398PhUIhOmEEzJz/RhIKXDUIJdYsfAkjYHpViWEYfPLJJ2hra0NeXh4vj+8P+FzlCDj/YWFZFoODg+jr6/Po1M2ZM2eQlJQEo9Ho0WNPTEygu7sbMTExUKlUKCsrc+niL7YoEIZhMD4+DrlcjrGxMURERHALAF+LG8uy6OrqwuTkJIqLi0V3QRUCPj2MiJhVKBSYmJjgmu4TExNF5bbc09MDjUYTMO8xqZjn5eUhOjqaq1jo9XreKhZio6+vDyqVCiUlJT71HpPBCPIe2ea/zXXDYTKZUFdXh7y8PMFu/j/77DM89NBDqK2tFVvl0auLk0+KI4PBgPb2dhiNRo9fCM+ePYvJyUlIpVIUFRV5bHGYnJzEN998A5lMhmXLlrnceC0mYWSPbcCnQqHgtnZkMpnLApT0ooWEhGDp0qWie85CIKSHkW3TvVqtRmhoKLf95q3pN2LHYDKZsHz5cr8SA7NBxO9MU3i2FYuxsTFERkZyvWRiG4xwht7eXk78+vp7TPLflEolJiYmEBMTwzV1k5tCUjHKzc0VTBidPHkSP/7xj3Ho0CFeLW94goojZ2BZFidPnkR8fLzggaD2mM1mnDx5EtHR0SgrK/PYsY1GI06fPg2r1Yq1a9e69Bh8Nl57CrK1I5fLOS+YlJQUh/uUzGYzGhsbkZKSEjBTGCqVigsZ9kSvELkbVigUXFyGMy7d7mIbB7JkyRKf+Fy7i1arRVNTk0Pi1/aGQ6lUAgD3HkVHR/vM69Xd3Y3JyUkUFRX5vDCyh2VZTE5OQqFQQKVSQSqVIiEhAXK5HHl5eS6b+c7HqVOncP/99+PgwYMuD/QIDBVHzqLVaj3eT0CMHWNjYxEXF+exiZCJiQk0NTUhNzcX/f39WL16tdOPwbIsLBYLAOEbr4WC3GkpFApMTk5ySeiJiYkzPqepqSk0NTVh8eLFgl1cxMbQ0BAGBwdRWlrqlQoBGXFWKBScS7eQafWk2TyQRtdJVbC4uNilfkOTycS9R2LLFpuNzs5OTE1NobCw0GevX86g0+lQV1eHsLAwWCwWQd6j+vp6/OAHP0BNTY2Y+4yoOHIWs9nMddh7AtJQV1xcjImJCZjNZo9cjEdHR9HZ2YnS0lKEh4fj66+/xiWXXOLw34t9G81VbB2g1Wr1BSPoGo2GMwEVezQGHxAT0PHxcdH029i/R3xv7XgjDsTbaDQatLe381YVtM0WU6vVLjcMCwXLsujs7ITBYEBhYaHfXL/mwmw2o66uDjk5OUhJSbngPQoLC+PeI1dbDZqbm3H33Xdj3759yM/P5/kZ8AoVR87iKXFEFh0yGREaGoqRkRHodDrk5uYKetyuri6MjY2htLQUISEhYFkWJ06cwKWXXurwY/ijMLKHTO2QbQOr1QqLxYKioiJROSILha2Hkau9aEIz09YO6VNyZbJKDHEgnoZsl5aVlQkmXHQ6HdcwTLZIk5OTPW63AZz/zJw7d47rI/PX65ctZrMZ9fX1yM7OnvVzTfLfFAqFS/lvbW1tuOuuu/DOO++gsLCQ76fAN1QcOYvFYrnAiJFvrFYrWlpaEBQUhIKCAu6DR5ocly5dKthxiaFkfn7+tA/8F1984ZA4ChRhZAvLsujt7YVCoUBKSgrUajXMZrPTSfW+hKMeRmKDZPMpFApMTU055dJN4kCWLl0aMFEHJDeM3KB5ArJFqlQqObsN0jAsdGWSZVl0dHSAYRgsW7bMZz7X7mCxWFBXVzenMLLH3vdqvvy3jo4O3HHHHXjrrbdQUlLC91MQAiqOnEVocURGZNPT0y9o5CWOwgUFBbwflxh9LViwYMaeJkfEkS82XrsLwzBob28HgGnVE/semISEBK4HRowVFmfwl/gTq9XKTVYRY0OSK2bfV0jiQAJluxQ4H48xMDDgsnUHH9hPKIaEhHBbpHzbmLAsizNnzgAA8vPzA+L6ZbFYUF9fj8zMTKSmprr0GLb5b6Q6q1QqER0djUsvvRR9fX24+eabsXfvXqxYsYLP0xcSKo6cRUhxND4+jubm5llNJcfHx9Hf34+ioiJej0sar+cys5xPHPlD47WzWCyWaU25s11M7cebySKcnJwsKq8eR+DTw0hM2E/tENPD5ORkGI1GnDlzxmNTeGJgYGAAcrkcJSUlovqM6vV6bovUbDZzlT93DUJZlkVbWxuCg4MDZvKQCKOFCxciLS2Nt8c1m804cuQI/vrXv6K9vR0Mw+Dee+/FvffeK+qcQTuoOHIWocTR0NAQent758xj0mq1OHfuHMrKyng77sjICLq6ulBaWjpnHs9s4igQt9GA8xW+xsZGZGVlOXVhsV2ElUoldyfsTa8eRyHTSsuXL+fyt/wVg8EAhUKBwcFB6HQ6ZGRkIC0tTfQu3XzgK4aWFosFarWaMwiNiYnhKn/OCDqWZTlLhry8PL9/f4HzVVMSPcWnMLJlcHAQN954I773ve9hYGAAx44dQ2xsLDZu3IiKigosXrxYkOPyBBVHzkKabvmC7HHrdLp579L0ej3a2tp4KU2SaYzx8XGUlJTMWzafSRwFqjAiWywFBQUOhTDOBbkTJl49pE9JbD4wnvYwEgNDQ0MYGhpCYWEhJ2htXbod6YEZtRrRYB6HnDFCJg1DaUgcUoPEGR9DhjF8cXSdZVlMTExAqVQ6lc/HsixaWloQERGBxYsXi+o7JxREGC1YsEAwV+qRkRHs2LEDzz77LK666iru54ODgzh8+DCio6Nx8803C3JsnqDiyFn4FEcWiwUNDQ2IjY116I6F9Hq44jdkC2mmDQsLc7jp8MSJE7j44ou5C2agCiOFQoHOzk5BRILZbOaahXU6nVPNwkLibQ8jb9DT04OxsbELoiJse2BUKhXCwsK47Tf7yl+fZQoHDSOIkAYhShIELWuFgbWiIiwNmcHiEpjkJs1qtaKgoMDnv8/ExFWhUMBoNM44WcUwDJqbmxEdHS32KgZvEGGUnp4+b+ahq8jlcmzfvh1PP/001q9fL8gxPAAVR87ClzjS6XRoaGhATk6Ow+qdYRh8+eWXWLNmjcvHNRgM3D6zM5btX375JVauXIng4OCAbLwGzodOjo6OoqSkRHCRwDAMt2Wg0Whc3jJwBzF6GAmNs3EgU1NT06wckpKSIJPJEBUVhbcNg5AAiJL++/3SMhZIIMEtERmi+d74e7+N/WRVdHQ0kpKSMDo6ioSEhIAx8bRarWhoaEBaWppgwkilUmHbtm349a9/jeuvv16QY3gIr34JxNPl5wR8XDhUKhXa29tRXFzs1OSLRCLBPIJyTkjDd0FBgdOjyEFBQbBarQgKCgq4xmtyV20ymbBixQqPPG+pVMqNxpItA4VCgZ6eHoSGhnJ9SmFhwmzR2HoYlZSUBMR7zTAM2traEBIS4rDxX2RkJLKzs5Gdnc1V/np6eqDQTeKMTIIl0Ulgo6MhkZ5/rGhpMAatBuhYK6Il3r8EkupJVFSU324rkeb6lJQU7rvU3NwMhmG4/tHk5GSXfK98BSKMUlNTBRNGY2Nj2LFjB/7rv/7L14WR1/H+lcHDsCyLvr4+jIyMYNWqVU4vbO58cUdGRtDd3Y3y8nKXtoOkUinMZjOkUmlAVYuI91NUVBSKioq88rwlEgni4uIQFxeHvLw8rlrR1NQElmXdMjWcCfKcY2JifMrDyB3IVnNcXNyck4dzERISgvT0dKSnp0NvNeO06gwmJicwPDyMsLBQxMbGITomGpACISJ4Ta1WKxobG5GYmCjWfCveYRgGXV1dyMrKQmZmJoxGI5RKJTo7O6HX65GQkIDk5GS/sNwgMAyDxsZGyGQywaw3xsfHsXPnTvzsZz/Dli1bBDlGIOGT22oMw8BsNrv0d62trQDgVnq3o2aMBNvG69LSUqe3ZCYYMz42KHB0oAPpYVGoTF6MgvB4J8/aNzEajWhsbERGRoZgd1vuYmtqqNfrp/UpubLA+4uHkTMIFQfykUGBM1Yt0qVhMBqNmBifQOeUBovMQbg+diHXLOwN8Un6HVNTU8WYiC4IpHoik8lmfM72lht8x854A4Zh0NDQgOTkZMEyOScnJ7Fz507cc889Ym+ydgbac+QsLMvCZDI59TckciA1NRVZWVluXQydEUfkbjg8PNwlUzOV1YSHx1sgZ4wIt7KY0OuhMxuxUx+DTfFZSElJ8dmLxnxotVo0Nzf7lBsy6a1QKBQYHx93aqoK8F8Po7kQMg7EwFrxgVGOAasBUhZgJEBmUDiulsRjUnn+fTIYDJxBqKca70lURGZmpmBj3GKDNCKnpaU5JIBJ7Ay58QCApKQkUU6SzgapGCUlJQkmjHQ6HW688UbcdddduOOOOwQ5hpeg4shZnBVHxGAxPz+flwXniy++wJo1a+b9crraeG3Lq9puHDGMYqH0vBOtRAIYWSsUZgMe0SZjSqGGRCJBSkoKZDIZ74613kKtVqOjowNFRUUupY+LgZmmqmQy2ayCNpA8jAieiANhWRZyxgQda0G0JBgp0tBp392ZmoVnc+nmA5PJhPr6ei5cNBAgZocZGRkuj66bTCbO8V6n0wmSVs8nRBglJiZekLTAF3q9HjfddBN27dqFu+++W5BjeBEqjpzFGXHkqMGiM9iP1M8Eabxevny5ywGoLMviTtU3iJQEIUwiha0WG7Qa8J/RS1AeEgej0QiFQgG5XM7liclkMp+5u7KHjK2XlJQI1uzsDWzDV1mW5RpUo6KiAtLDSIxxILO5dKekpPBy40FumJYsWTKrE76/QXLD+KyS2afVh4eHc8MTYjByZRiGc+4XqpfMYDDg1ltvxebNm3HPPff45LV+Hqg4cgWj0Tjn70mq88TEhEMGi87w9ddfz+k3Mzw8jJ6enjmdtufDarWCYRj8YKIRwRIJIiTT74wGrAb8MnopikOmLyokT0wul3M+PTKZzOX+F09CerN0Oh2KiopEeTfIFyaTiTOenJycBMuyKCgoQHJysujfJz4YGxvDmTNnUFxczNtNixAQl26FQgGz2cxt67iSVE+qZMuWLXPbuNRXINuHWVlZLueGOQLZfrO1c0hOTnbpfXIXMn0YGxsrmEWByWTC7bffjvXr1+OBBx7w12sGFUeuMJc4InlbkZGRWLp0Ke8fnG+++QaFhYUX3KEQQTY5OelyHpK9sWOVYQj/axhEtjSCex4TjAUMWLwcV4pQyezVK4ZhuDI06X+RyWSiLEMzDIOWlhaEhoYK8p6JEeJhNDY2hgULFkClUnHuz2J9n/hAoVBw1Vwx3OU7isVi4b5Pk5OTTvWTabVaNDU1oaioyJeyrdzCbDajrq5OkF6y+Y6rUqmgVCoxOTmJuLg4JCcnO9z35w6eEEZmsxl33XUX1qxZgz179vjztZKKI1cwmUwz+g1NTU2hoaEB2dnZgk031dfXIy8vb1ovDB+CbCbHaz1rxdPas2ixTEIKgAEQhiA8FL0EhSGOX2RZloVGo+G2CyIjIyGTyZCcnOy1tG+CyWRCY2MjUlNTBWtaFBskfZxhGCxbtmya6zl5n8h2AXmf/KHxnsSBlJaWev1z5w6zuXTP5Hs1Pj6O1tZWlJSUiLpKxidi6auyfZ/UajWXo5icnMx7fybLspzbd05ODq+PTbBYLPjud7+L4uJiPPzww/4sjAAqjlxjJnGkVqvR1taGoqIiQRtam5ubkZmZyR2D9BFkZma6PIY8l+O1lWXRZJnAOYsW8ZIQrApNQLzU9YWFZVlotVrI5XKoVCoEBwd7LXiVbDXk5uYGTHOqMx5GOp0OcrkcSqWSa7yfL6tKrMwWB+IP2Lt0E98rs9mMjo4OlJaW+s2wxHwYjUbuBlJsfVV6vZ6bfjObzZzthrthxiQfLjIyUrAYFKvVinvuuQeLFy/Gr371K16F0caNG7FgwQK89tpr3M/uvfdeHDx4EOHh4QgLC0NLSwtvx3MQKo5cwV4c9fX1YXh42COl+tbWVqSnpyMhIQEajYabMHKn8dqbUSAkeFUul3OGhiR+QUg0Gg3a2tpE1ZArNKRK5oqfD2m8VygUMJlMbvW/eBJn40B8HeLSPTAwgImJCaSmpnLXC39/7kajEXV1dT5hv2GxWDjbjYmJCZfjgWyDc3NzcwU5V4Zh8MADDyAlJQW/+c1veP0cHTlyBHfddRc2btw4TRzt2rULe/bswapVq3g7lpNQceQKZrOZ24Jqa2uD1WpFYWGhR+5Iz5w5g8TERJjNZvT29qKsrMzlu0LSeC0Wx2tiaCiXy2EwGLicKr4X4JGREfT19aGkpMSn+k7cgXgY8VEls+9/iYuL4/qUxLQAk+9ncHBwwPSSAcDo6Ch6e3tRUlLCNQur1Wq/MDWcDVJBz8/Pd/lG0VuQSBOlUslNKZLq31xVWpZl0drairCwMOTl5QlybgzD4Cc/+QkiIiLw7LPP8vr91ul0uOaaa7Br1y40NzdPE0cbNmzAK6+84s1AYCqOXMFsNsNgMHDOo67GDbgCabommVd8NF6LcdGwWq1cCXpycpIzynPnDti2CdnV184XIWPrQngYkbFm0lchln4yPuJAfJHZ+qqIqSHZfpNIJNNiZ3wZIvz9ZRLPYDBw1z6j0YjExEQkJydPMwklYcGhoaHIzc0V5PPNMAweeughWK1W/OEPf+D9xufuu+/Ghg0bMDU1hePHj08TR2vXrsXg4CDi4+OxZ88e3Hrrrbwe2wGoOHIFlUqFhoYGLF261KO9KhaLBSdPnkRERARWrFjBW+O12LG39Scl6OTkZIerdQzDoL29HQCmNSH7O570MCILMOlT4tunx1HMZjPXZB8o0RgA0N/fD4VCgdLS0nm/FyRTjLh02/a/+NJ3gwijgoICvzQvnckkNDk5mWvEz8vLE0wYPfrooxgfH8err77K+2fizTffxPHjx/GXv/wFe/fuvUAcEVpaWrB+/Xp88sknyM/P5/Uc5oGKI1fo6OhAUlKSR92T9Xo96uvrERUVhfj4eJdcT73dX8QHtgn1SqUS4eHh3AI821aB2WxGU1MTF7Dpi8/bFYih5Vy+WEIyk0+PTCZDTEyMYO+BkHEgYqa7uxsTExMoLi52eiGzj51xtf/F05Dp4EDpGyQmoW1tbTAajYiIiOBuEvkKnSbHeeKJJzA4OIi//vWvgrSLrFq1ChqNBsHBwRgfH4der8e2bdvwxhtvXPBvd+zYgdtuuw2VlZW8n8ccUHHkChaLBVar1WPHGxsbQ2trKwoLCzE1NQWj0ej0uKY/CKOZsJ+oIhEZpFKh1+vR2NiIRYsWCWoEJybI9qFGoxHNdBbpU5LL5dBqtYiPj4dMJuO1UdgTcSBig5iXGgwGXhrObftflEolQkJCuO03MU286XQ6NDY2BpR3E7HgkEgkWLp0KdejqVQqMTU1xVvrwe9+9zt0dHTgf/7nfzwijmeqHHV2diI3Nxe9vb1Yu3YtPvvsM8G8m2aBiiNX8KQ4GhwcRF9fH9d4PTo6isnJSaca8FiWhcVi8StRNBP2lYqYmBio1WoUFhb6XJOmq8zmYSQmSJ+SXC7H2NgYoqKiuDtgV/uUxBgHIjTkvWZZFsuWLRPku20/fi6GKUViallcXOyz2YfOwrIsOjo6AGDG4QL71gNXmu9ZlsULL7yAuro6vP322x7rGSTi6IYbbkBnZyf27NmDyy67DENDQ4iIiMBjjz2GG2+80SPnYgMVR65gtVphsVgEPQb5MkxNTaG4uJhT8KTx1ZH9V1/sL+KL4eFhnDt3DlFRUTCZTFxPhS9EmbgK8TCKjo7G4sWLfeJ52vtekT4lmUzm8CShr8SB8AmZVAoNDRWs78SemaYUU1JSPOqmTkRwIJlakrWAZVnk5+fP+16T3j8iagFwona2zEuWZfHyyy/js88+w759+/xumtEFqDhyBaHFkcViQWNjI2JiYi648I2NjWF4eBjLly+f8zECWRj19fVBoVBwuXakp0Iul2NiYsIrF3WhMZvNaGhocMnDSEzYVv8sFgvXpzTbRd1X40DcgcRExMTEeG0Sz95NfS6Xbr6YmJhAS0tLwAmjs2fPwmq1ulwdNJlMnKjV6XSIj49HXFwcYmNjER0dDZZl8frrr+PIkSOoqanxq8BtN6DiyBWEFEek8Xq2CJKJiQn09vaiuLh41scIVGFE7rDMZvOs/Rfkoi6Xy6FWq3nZ0vE2pK9q8eLFfuX0bR9knJCQwAUZS6VSv4kDcQar1YrGxkYkJSW5NJQhFLaVCoZhuD6l2USts5AYFHcCtX0NkpdpNptRUFDAy+tItrS/+eYb7NmzB6mpqcjNzUV3dzeOHDkiqr4yL0PFkSsIJY5sG69n8+vQarU4d+4cysrKZvy9vzZezwfxtYmJiXF4S8l2S4c0n5KGbl+5exLSw0hMkJ4KuVwOjUbDvb/l5eU+8165i8ViQUNDA9LS0kRdHSQu3aRS4W6jsEajQXt7e0DFoJBGe5PJxJswmokXXngBVVVViI2NhV6vx7e+9S1s2rQJK1euFGW/ogeh4sgVGIaB2Wzm9TEHBwfR39+PsrKyObcHDAYDWlpasHLlygt+RxqvAQTUB5uMby9cuNCtwF+9Xg+5XA6FQgGWZbltArGW8D3pYSQWyDaDTqdDdHT0tEBPb+TzeQqz2Yz6+npkZWX51NSlfaOws5Va0k8233XR37CdQBRKGO3btw9vvPEGamtrER0djfHxcRw9ehSHDh3CuXPn8NlnnwXUOmIHFUeuwKc4mq3xejbMZjPq6upw0UUXTXuMQNxGA85X0pqbm3kf3zaZTFzmm9Fo5LYJxJIlNjw8jIGBAa95GHmD2eJASD6fQqHggldJPp8Y3it3IWGqvr5tSiq1CoUCKpVqXpdutVqNjo6OgBRGer0ehYWFgn1+Dxw4gD/96U+ora2dseJMdh4CGCqOXIEvcUTK5LGxsQ5PnDAMgy+//BJr1qwBENjCiFROhJ5Ssvfose998SRi9DDyBI7GgZAtHblcDr1ez23peOO94gPiAO2P3k1zuXSPjY1x7QOBsm0KAF1dXZiamhJUGNXW1uLZZ59FbW2t332meISKI1dgWRYmk8mtxyDurosWLUJ6erpTxz5x4gQuvfTSgBZGg4ODXDOuJysn9r0vMTExkMlkSEpKElyo+IKHkRC4GgfCMAw3pWjr/OxM7Iw30el0aGpq8ttoDFtsXbpVKhWsViuWLFmC1NRUUbt080l3dze0Wi2KiooEu5YfPXoUTz31FA4fPozk5GRBjuEnUHHkCu6KI7Vajba2NhQVFbl00fviiy+wZs2agGy8JhMcU1NTKCoq8uoiR9yEiUdPeHg4F7rKt2DzRQ8jPiD9ZNnZ2W712tjGzqhUKoSGhgo+eu4OpNE+kByggX9bM+Tm5kKj0UClUnE9ZcnJyX7bkN3T04OJiQkUFRUJdtPz8ccf49FHH8Xhw4cDKlrHRag4cgV3xNHAwAAGBgbc2kf//PPPuZ6jQKkeAOcFQktLC8LDw7FkyRLRCQQSZaJQKHgNXfUXDyNnETIOZGpqiutTYll2Wu+Ltz9X4+PjaGtrCyhTSwAYHR3l0gBsm7VJT5lSqRSNSzef9Pb2Ynx8XFBh9Nlnn+Ghhx5CbW2tUzsVAQwVR65iNBqd+vdkS8RgMKC4uNjligfxOTGZTJDJZE45CfsyJpMJjY2NSEtL84mkdWJmKJfL3WoS9lcPo/nwZBwIyahSKBTQ6/VedVMnTciBNLYOACMjI9y07lxTbGJw6eaT3t5eaDQalwKDHeXEiRPYs2cP3n//fZ+4dooEKo5cxRlxRBqv4+LikJub69IF176/yGg0Tlt8iT+PP95pkt6LvLw8n9wnt28STkxMhEwmQ1xc3JyfhUDxMLLHm3Eg9gn1sbGxXEK90Isv2VIKtCbk4eFhDA4OoqyszKn+IoZhMD4+zrl0h4eHc9tvvvD69fX1Qa1Wo6SkRDBhdOrUKdx///04ePAgsrOzBTmGn0LFkauYTCbMc/4A/t14nZOTg7S0NJeONV/jte3Yuclk4qoUfLnTepOxsTG0t7f7Te/FTFEmMpkMiYmJ0y6QgehhBIgrDoRlWW7xJT1lZKuU756y2baU/J2hoSEMDw+jrKzMbfGp0+m47TexbZXa09/fD5VKJagwqq+vxz333IOamhrk5uYKcgw/hoojV3FEHLnbeA0473htsVi4KoVOp+OyqearUoiR4eFh9Pf3o6SkxOsLpRCQO1/bKBOZTAaLxYLh4eGA8jACzi+UpIIgRoFAFl8S5smXSejg4CBGRkZQWloaMJNZwPn+S7lcjtLSUt6rcvZ5Yu66dPPJwMAAFAoFSktLBTuX5uZm3H333aiqqsLSpUsFOYafQ8WRq8wnjvr7+7kLvasLu7uO11arlfPnmZyc9Ko/jzOwLIvu7m6Mj487ZIzpD7Asi8nJSZw9exYTExOIjY1FamqqaKep+Ka3t5fbYvCF3hFSrSUePaRJ2NmbkL6+Pq6C4AvPmy/6+/uhVCo98rzddenmEyKMhHzebW1tuOuuu/C///u/8waUU2aFiiNXMZvNYBjmgp8zDIMzZ87AZDK5NWputVp59S+y9+eJjY3ltnPEdFEmLshBQUFYunSpqEUcn5CGfavVioKCgmnp9CTKRCaT+d0WG7FmMBqNs4YFix1yE6JQKLit0vmahMkNwOTkpKDNuGLEE702s2Hr0q1UKiGVSrkKoNDfrcHBQYyOjgpSKSN0dHTgjjvuwFtvvYWSkhJBjhEgUHHkKjOJI2JWFx8f77IXjSeMHUkvBfHnIds5ycnJXq3SkNcvOTkZWVlZPrcN6CrzeRjZ95SRrdKYmBiffo1miwPxZViWhUaj4ZqEIyIiuCoF2SIlgpCEigaSMOrp6eEqwmJ43mSwRaFQwGg0ulwBnI+hoSFu61QoYdTd3Y2bb74Ze/fuxYoVKwQ5RgBBxZGr2IsjnU6HhoYGLF682O3Ga6vVCqlU6pHFgtxJjY6OQqlUIiwsDKmpqYIYGc4FGVnPyckJKIMy4mHkqEWBmKJM3IEIwtjY2DnjQHwZlmWnNQmTLLHJyUmEhIQgPz/fL5/3bJBKmZB+Pu5gP6lIHNWTkpLcumnks+l8Nvr6+nDTTTfhtddew+rVq3l//I0bN2LBggV47bXXuJ81Nzfj1ltvhUajwZYtW/DCCy+I8n11ESqOXMViscBqtQI4P1nU3t6O4uJilz1ZnG28Fgp7I0NiESBkQ/T4+DhaW1sDbmTdXQ8jb0aZuAOxtnA2DsTX0ev1aGpqgslkQkhIiN+ZGc4Gy7LTMsN8YQG1d1QnLt3OXguHh4cxNDQkqDAaHBzEzp078cc//hGXXXYZ749/5MgR3HXXXdi4ceM0cXTFFVfgoYcewoYNG7Bu3Tr86Ec/QmVlJe/H9xJUHLkKEUd9fX3cXYGrjbNiEUb2EGdauVwuWN+LXC5Hd3c3SkpKAsr0jm8PI/soE7Kdk5KSIqrJL77iQHwNhmHQ1NSE2NhY5OTkXGBmGB8fz/Up+YJ4cBSWZdHZ2cn1lInl2uYs5FqoUChgtVo5YTvX1vbIyAgGBgZQXl4umDAaGRnBjh078Oyzz+Kqq67i/fF1Oh2uueYa7Nq1C83NzZw4UigUWLFiBfr7+wEAr776Kk6fPo1XXnmF93PwEl79oPr0CBLDMGhtbYXZbMaqVat4abwW20UxIiICWVlZyMrKgslkglwuR3t7O8xmM5KTk5GamuqyhwjLsujr64NSqcSKFStEtYALDfEwKi0t5U1oSiQSxMXFIS4uDkuWLOGaTuvq6rgoE2+7qftzwvxcWK1WNDQ0ICUlBZmZmQCA4OBgpKamIjU1FQzDcH1KZ8+e9eo0FZ+wLIuzZ8/CYrH4tDACpl8LzWYzVCoV+vr6ZnXpHh0d5WKihBJGcrkcO3fuxDPPPCOIMAKAH/7wh/jxj3+MqampaT8fGBhAVlYW998LFy5EbW2tIOcQiPi0OOrt7UV4eDgKCgpE23jNJ6GhoVi4cCEWLlzIOT53dnZCr9dzDcKObg8wDIOOjg5YrVaUl5eLThQKCfFuKi8vF3REPzo6GtHR0cjJyeEm31paWtyKMnEHT8aBiAnSU7ZgwQIsWLBgxn8jlUqRmJiIxMTEadNUtsKWj4w+T8KyLDo6OsAwjMvXSLESEhKCtLQ0pKWlTXPp7uzsRHh4OMLCwjAxMYGVK1cKNuCiVCqxc+dOPPHEE1i/fr0gx3jzzTchkUhw4403Yu/evdN+ZzKZpl23pVKpqLfyfQ2/2FZzBV8TRnPhrJeSxWJBU1MT4uLikJOT49PP3RlYlkVvby/Gxsa86t3kapSJO3gzDsSbmEwm1NfXu7WFaGvpQCq2823neBuWZdHe3g6pVOo3U4iO0tfXx904AxDEpXtsbAzbtm3Dww8/jC1btvDymDOxatUqaDQaBAcHY3x8HHq9Htu2bcMbb7yBvr4+XHXVVejq6gIAvPbaa2hqasILL7wg2Pl4GNpz5CpWq5UzaHQGsfYX8QFpEB4dHeVyqUiDsFQqhcFgQGNjIzIzMwMqGdrew0gslbKZ/HlmijJxBzHFgXgSg8GAhoYG5Obm8pYHSNzvFQoFN6koFtdnAsuynD3DkiVL/Or6Nh9yuRy9vb2cw7ttoPHU1NS0QGNX36/x8XFs374dP/nJT7B9+3aen8Hs7N27F8ePH5/WkF1cXIyXXnoJl19+OdatW4cnn3wSa9eu9dg5CQwVR67CMAzMZrNTf+PPwsge4vdCojHCwsKg0+lQUFDgk+GxrjKfh5FYsO17UavViI6O5vpeXK1yiT0ORChIb1V+fj4SEhIEOYa96zMf75e7sCyL1tZWhIWFuRyw7asoFAp0d3ejvLx8xs86wzBQq9VQKpUuu3RPTk5ix44d+I//+A/s2rWL76cwJ0Qc3XDDDejs7MSePXtw+vRp3HnnndBoNNi9ezcef/xxj56TwFBx5CrOiiPiXwS4FgXiyygUCnR0dCAxMRHj4+MIDw/nLAL8edF01sNILJAoE+LPExoayvW9ONon5WtxIHyh0+nQ2NjoUVsK0qdEJhWDg4NdGjt3B4Zh0NLSgsjISFHfBAjBfMLIHnuX7qCgIG77bbYBDZ1OhxtvvBF33XUX7rjjDr6fAuVCqDhyFUfFkT/1F7nCwMAARkZGUFJSwplKkguDrZeSTCbzqwwxdz2MxMTU1BTnfQVgTksH4v5sMBh8xtOGL0jTeXFxMaKjo712HvZj52ThjY6OFuT6wzAMmpubERMTg5ycHN4fX8wolUp0dXU5LIxmwmAwcNtvxKU7ODgYmZmZCA4Ohl6vx0033YSbb74Z3/nOd3h+BpRZoOLIVRwRR4EsjMgiqdfrUVhYOGv1QK/Xcwsvy7KcUPKlyRx7+PYwEhO2cQsmk2lagzBpxCW5eIH0eddoNGhvb0dJSYmo8u9IAz5Jp+ej78UW4t8UFxeHRYsWuX/CPoRKpUJnZyfKysp4SxMgfYCvvvoq3nnnHRQWFkKj0WD79u148MEHA+o75WWoOHIVlmVhMpnm/H2gCiOr1YqWlhZEREQgLy/P4edOFl65XA6z2cxVKLx5F+4sarUaHR0dATGZZd8gbLVakZCQgGXLlgXUVhrxrSorKxN10/lMjuruxGMwDIPGxkYkJiZO87wJBFQqFc6dO4fy8nLBYpb0ej3uvPNOmM1mqNVqpKSkYPPmzdi8ebNPbdP7KFQcucpc4iiQGq/tMZlMaGhoQHp6ultfYPuRc+LNI+YRZuJhVFpa6ldbhPNhsVhQX1+P6OhozvclNjaWW3j9WSiRfhM+qweeYKZ4DNIH6Mhn12q1ciHRxNgyUFCr1Th79qygwshsNuOuu+7CmjVrsGfPHkgkEnR3d+P999/H+++/jxUrVuDpp58W5NgUAFQcuc5s4ohlWW7EP5D6LYDzTYNNTU1YsmQJkpKSeHtcq9XKCSWtVst588THx4tCKInFw8gbzOTlw7IsZ4wn5igTdxkeHuZckH39eZHtbaVSCavVyr1fM/nzEMdvmUwWcBUMIozciYuaD4vFgrvvvhulpaX4xS9+MeM1jtx4UwSDiiN3MBqN3P8P5G004N/bSUVFRYJug5GRWLlcjvHxcUG8eZxBrB5GnsCROBCSTE8WXk+FGQvNwMAARkdHUVpa6ndi2Gw2c31ler1+mrErEUbp6emzOn77K8TMVEh3e6vVinvuuQeLFy/Gr371q4BbR0QEFUfuYDKZwLJswAsjb20n2XspRUdHQyaTITk52SNbOcTDKCoqKuB8XVxtOjcYDFwDvm2Fwpf6ygLJpsBqtUKtVkOhUECj0cBsNiMtLQ15eXl+/9xtIQ33QvaVWa1WPPDAA0hNTcVTTz0VUDdaIoSKI3cwmUycKApEYcSyLLq6ujA5OYni4mKvXixnSqUnQkmILQ9f9TDiA7JQuNt0bl+hcDajz9OQz7tOp0NRUVFALV5msxl1dXVITk7mJqrCwsK475g/99h5QhgxDIMf//jHiIqKwu9///uA+myJFCqO3MFoNMJisQRk4zXDMGhtbUVwcDDy8/NF9dztt3KCg4M5iwA+Gij9ycPIWYSKA7HP6IuPj4dMJhNNNAYJUiXbp2L6vAuN2WxGfX09srKypmXEEf8rpVIJlmWn9Sn5C+Pj42hraxNcGP385z8Hy7J46aWXRPF5p1Bx5DKDg4P49a9/jYqKCqxdu9bv+g7mwmw2o7GxESkpKT4xwmtrYiiRSLieF1e8lPzZw2g+PNWATKJM5HI5F41BMvq88T0jeWGB6N9EGu5zcnLmvBEgOWJyuRwGgwFJSUlISUkRNNBYaIgwKi0tFcx3jWEYPProo5iYmMCf//xnKozEAxVHrmI2m3Hs2DFUOTYCJQAAOrpJREFUV1fj5MmTuPjii1FZWYnLL7/cp0Z6nYU04S5evBgymczbp+M0RqMRcrkccrmc63mRyWQO3e0GkoeRPd7qsyFRJmS7NDQ0lBO3nvieBXIshslkQl1dndPhuaRPSS6XY2JiggugTkxM9Jk+pYmJCbS2tgoqjFiWxRNPPIGhoSG88cYbPvPaBAhUHPGBxWLBv/71L+zbtw/Hjx/HihUrUFFRgXXr1vnVXvz4+DhaW1tRWFiI2NhYb5+O25CeF3K3O5eXUqB6GIktDsS+CkjErRALmNVqRVNTE+Lj4wPO/dloNKK+vh55eXlu2XLY2zqQXMXk5GTR3kR6Shg988wzOHfuHN58882A2nnwEag44hur1Yrjx4+juroaH3/8MYqKilBRUYH169eLKlbAWUZHR9HT04OSkhKfjvaYDYvFApVKhdHRUS5mITU1FbGxsejr6+OqJoF0ESPbSVKpVHR9ZcCFjupE3PKRIWaxWNDY2BiQXj4GgwH19fVzWjS4ik6n45rwJRIJ956J5do4OTmJlpYWQWNgWJbFCy+8gLq6Orz99ts+75Hlp1BxJCQMw+DkyZOorq7Ghx9+iCVLlmDr1q3YsGGDz4wuE4NDtVqN4uLigPgiMwzDNQcrFAqEhIRg6dKlSEpK8nrlxFMQmwISJio2YWQPiTKRy+WcuHXVKJQ0IC9cuBDp6ekCnbE4IcIoPz8fCQkJgh7LaDRy7xkJXPXmtKKnhNHLL7+M48eP47333hNt9YxCxZHHYBgGp0+fRlVVFT744ANkZ2ejoqIC119/vWgbexmGwZkzZ8CyLJYtWxYwwgCYng+XmJgIhUKBsbExxMTEcM3B/tojYLFYOAdkX4yGsDcKdabnhTQgL1q0yCd76tyB9BMuW7YM8fHxHj22/bRiXFwcUlJSPNanpNVq0dTUhJKSEsH6CVmWxeuvv44jR46gpqYmoLbnfRAqjrwBwzBobm7Gvn37cPjwYaSmpqKiogI33HAD72VsV7FYLNP6LcReOeCT2TyMbL2UlEolIiMjueZgf9lumykOxJchPS/EKHQu/ytSNeE7/sYXmJqaQmNjIwoKCrx+s0by+ci0otDxM54QRgCwd+9e/OMf/8CBAwf8sjXBz6DiyNuQvo6qqirU1tYiLi4OFRUV2LRpE5KTk70iSgwGAxobG5GVlYW0tDSPH9+bGAwGNDQ0ICcnZ87KAcuy0Gq1nFDy9BSVEJDKgb+Kg7miTEjCvDeqJt5Gp9OhsbFRlIMW5D0jfUpBQUFcnxIfAoM89+LiYkFbHf7+97/jf//3f/H+++/ztmXHMAy+9a1vobe3FxKJBC+++CK+9a1vcb+/9957cfDgQYSHhyMsLAwtLS28HDdAoOJITJDJoKqqKrz//vsIDw/H5s2bUVFRgdTUVI8IJeLjU1BQEHCLhDvPfSYvJZlM5jP5YeTuOZD8m/R6PRQKBYaHh6HVapGRkYHMzMyAsmkg73tRURFiYmK8fTrzYjAYuD4ls9nM+Sm50qfkKWG0b98+vPHGG6itreX1OCzLYmRkBOnp6fjggw/wy1/+EqdOneJ+v2vXLuzZswerVq3i7ZgBBBVHYoU0QldXV2P//v2QSqXYtGkTKisrkZGRIYhQUigU6OzsFLQhUazw6WFkMBi4KSpnvZS8AV9xIL7IxMQEWlpasGzZMi6ZnpgYijnKhA+IMBJaHAgFmTBVKBROu6p7ShgdOHAAf/rTn7hdAaH485//jK+++gqvv/4697MNGzbglVdeweLFiwU7rh9DxZEvwLIshoaGUF1djZqaGhiNRq6ixFc/UH9/P0ZHR1FSUuKz20KuMjIygr6+PkE8jEwmEyeUjEYjJ5T4GDfnA6HiQHwBkrJu72cj9igTPiBVUqH7bDwFcVVXKBRQq9WIiopCSkrKjL1lpL+qsLBQ0GpZbW0tnnvuOdTW1go2+ffMM8/g6aefRkpKCo4cOYLs7Gzud2vXrsXg4CDi4+OxZ88e3HrrrYKcg59CxZGvwbIsRkdHsX//ftTU1GB8fBw33HADKioqsGTJEqcXXJZlcfbsWRiNRixfvtxvJ7Bmo6enx2MeRvbj5qQ64a2IBRIHUlpaGnCCWKVS4dy5c/OKQrFFmfABqZaVlpb6ZYWY9AMqFAqut4w0dLMs6xFhdPToUfzmN7/B4cOHPdK/V1NTg1/84hdoa2u74FrS0tKC9evX45NPPkF+fr7g5+InUHHk6yiVShw4cADV1dVQKBS47rrrUFlZ6VA4JvGyiYqKQm5urigqGZ6CBIlaLBYUFBR4vCJgH7Hg6epEX18fVCqVx+NAxIBcLkdPTw/KysqcEoXejjLhA0/khYkNss09MjKCiYkJpKenIzMzU7Dq7ccff4zHHnsMtbW1HrWDWLhwIerr62eMetmxYwduu+02VFZWeux8fBwqjvyJsbExHDx4EDU1Nejr68OGDRtQWVmJ4uLiCxbcyclJtLe3Y8GCBcjIyPDSGXsH4mEUGRkpClHIMAzGxsYgl8uh0WgEzaJiWRadnZ3Q6/WiiAPxNMPDwxgcHERpaanbY+H2bs9CRpnwAektCyRhRCCTmEuXLuW2urVaLRISEpCSksLbTclnn32GX/ziF6itrRV80rerqwuRkZFIS0vDiRMncPvtt+PcuXPc7zs7O5Gbm4ve3l6sXbsWn332WcDF4LgBFUf+ysTEBA4dOoSamhqcPXsW11xzDSorK7FixQrU19fj7rvvRlVVVcA165nNZjQ2NiI1NVWUsRC2vjwqlQpRUVGcL4+72zhijwMRmv7+figUCpSWlvIuOoWMMuED0l9VVlYWcL1lxL/K3sOJ3JQQg9fo6GiuT8mV79qJEyewZ88eHDp0yCM3nKdPn8auXbtgtVohk8nwhz/8AX19fejs7MSePXtw2WWXYWhoCBEREXjsscdw4403Cn5OfgQVR4HA1NQUDh8+jKqqKnz99dewWCz45S9/iV27dgXUloqjHkZigU8vJYZh0NTU5DNxIHzT09MDjUaDkpISwatlZrOZa+h2N8qED8gkJhVGs0+LkS1T0qcUEhLC9Sk58pqdOnUKDzzwAA4ePIisrCw+nwLFO1BxFEi8+eab+POf/4zvfe97+Oijj1BXV4e1a9eisrISl156qc82mDqCP/g3EQNDYoZHhNJ8F29fjwNxB29vI5KcPoVC4XSUCR+QxvOysrKAi6sgwsgVY0/igaVQKGC1WpGcnIyUlJQZK4H19fW45557sH///oCrxPsxVBwFAizL4rHHHkNTUxPeeustbkLFZDLho48+wr59+/Dll19izZo1qKiowBVXXOFXAbN8ehiJBYPBALlcDrlcDpZluX4X++kjf4sDcQaWZadlA3q7WjbTluls4+Z8oFAo0N3d7XTjuT9gNBpRV1fHS4Cu2WyGUqmEQqGATqdDe3s7ZDIZrr32WnR0dHAtCkuXLuXp7CkigIqjQODo0aP44IMP8Lvf/W7Wu1Wz2Yx//etfqKqqwvHjx7Fy5UpUVFTg6quv9uk7TiE9jMSCrZeSyWRCcnIyUlNTIZVK0djY6LdxIHPBsixaW1sREhLiksWF0NiPmwcHBzu1jTMfZCKvvLzcr250HMFoNKK+vh5Lly7l3V+IYRgcPXoUb7/9Nr755huYzWbs2bMHd999t08aaVJmhYojyoVYrVZ89tlnqK6uxscff4ySkhJUVFRg/fr1PjXl0tvby42r+/OWoS3kLndoaAgajQapqanIzMz0a6dne0iwc3R0tM/0V5FtHFIJJA3drlQ6R0dH0dfXh7KysoATRiaTCXV1dViyZImgId4dHR2444478POf/xytra04cuQIZDIZKioqsHnzZqSnpwt2bIpHoOKIMjdWqxUnT55EdXU1jh07hqVLl2Lr1q3YsGGDaLeoiIeR2WzG8uXLA25cnYxsL1++nNt+m5ycREJCAtcY7K+vidVqRWNjIxITE6e5BfsSJpOJMws1GAxcv4sjAndkZAT9/f1UGAkojLq7u3HzzTfjzTffRHl5Offzzs5OHDx4ECaTCf/5n/8p2PEpHoGKI4rjMAyD06dPY9++fThy5AgWLVqEiooKXH/99aJJ8xabh5GnUSqV6OzsvMD5eTYvpaSkJL8RSqTxPC0tzW+8u6xWK9fvQgTubL48xMOprKwsYCqlBCKM8vLyBN1C7uvrw0033YTXXnsNq1evFuw4FK9DxRHFNcho+L59+3D48GGkp6ejoqICN9xwg2A5QvNBPIwCcSoLcDwOhDQGj46OQq1W+0UkhtlsRn19PTIzMwU33/MW9r48MTExXEP3yMgIRkZGUFZWFlD2HMC/hw5yc3MFFUaDg4PYuXMn/vSnP+HSSy8V7DgUUUDFEcV9SPNrVVUVF7K4ZcsWbNq0CSkpKR45B1/zMOKbvr4+KJVKpw0ObSMxlEolwsPDOYsAX9mWMRqN3Hvvqc+bt2FZFhMTE1AoFBgeHobVakVeXh5kMllATaaZzWbU1dVh8eLFM8Zm8MXIyAh27NiB5557DldeeaVgx6GIBiqOKPxCgmyrqqrw/vvvIyIiAlu2bMGWLVuQmpoqyDaXP3gYuQrfPj5kgsrWS0kmk4l20s82FkLIPhOx0t/fD6VSidzcXKhUKiiVSkgkEk7g+tIAhbMQYSS0KJbL5di2bRt+97vf4ZprrhHsOBRRQcURRThYlkVPTw+qq6uxf/9+BAUFYfPmzaisrMSCBQt4EUr+6GHkKELHgej1es50kmVZTiiJZcHV6XRoampyyeTPH+jt7cXY2NgFrt8kaFWhUMBiscxpYOirkG3URYsWCSqMlEoltm/fjscffxzXXXedYMehiA4qjiiegWVZDA4OckLJZDJh8+bNqKioQHZ2tksX7UDwMJoN0vMVHR2NxYsXC77o2WaHkQWXjJp7Y8El1cKioiLExMR4/PjepqenB+Pj4zOGSttia2A4NTXFRZnExcX5rFCyWCyoq6tDdna2oFvoY2Nj2LZtG375y19i8+bNgh2HIkqoOKJ4HpZlMTo6ipqaGtTU1GBychI33HADKioqkJeX59BFOxA9jAjejgMhC65cLoder0dSUhJkMpnHvJTGx8fR2tqKkpKSgKsWAufT2LVaLYqKipzaRrVarVCr1VyUSVxcHFJSUnxqYpEIo6ysLEEd38fHx7F9+3bs2bMH27ZtE+w4FNFCxRHF+ygUChw4cAA1NTVQKBTYuHEjtmzZgoKCggsWW4ZhcPbs2YD1MCKTOVlZWaKYyiKj5nK5HFqtVvCQVbKNWlpaKprtPU/Bsiy6urqg1+vd/uyzLAuNRgO5XA61Wo2oqChuYlGsjfgWi4WbSBRSGE1OTmLHjh247777cNNNNwl2HIqooeKIIi7UajUOHjyImpoa9Pf3Y8OGDdi6dSuKiopgNBqxa9cu3HbbbdixY4fPbgu4Cmk+FmscCMMwUKvVkMvlXGWChKzyIWKJh1MghqiyLItz587BZDJh+fLlvH72SZQJyXwLDg7mGrrF8joTYbRw4UJBbwp0Oh1uvPFGfPvb38btt98u2HEoooeKI4p4GR8fx6FDh1BTU4MzZ87AYrHgW9/6Fp588smAqxhptVo0NTVh+fLliIuL8/bpzIt9ZYJ4KSUnJ7vkwzM6Oore3t6ADFElE6AWi2XGairf2Dfik8w3b21hWq1W1NfXY8GCBYLGcuj1etx444245ZZb8J3vfEew41B8AiqOKOKnv78fW7duxbp169Db24vW1lZcffXVqKysxOrVq/3e9E6j0aCtrc1ne2yIJw+pTERERHBCyZEtnKGhIQwNDQWk8zPLsjhz5gwACDKROB+2ocZGo5FrxI+JifHIuXhKGBkMBtxyyy2orKzE97///YCrSlMugIojirhpamrC7bffjpdffhlr1qwBcP4O7+jRo6iqqkJdXR0uv/xyVFZWYs2aNX63eM4WB+KrsCwLnU7HVSZCQkLm3MJx1dzSH2BZFu3t7ZBKpVi6dKnXF2yLxQKVSjUtykTIrD6r1crFwSxYsID3xycYjUbcfvvt2LBhA+6//36vv84UUUDFka/z1ltv4bHHHuP+e3h4GHv37sXQ0BB+//vfIyIiAs8//zyuv/56752ki0xMTGD9+vX429/+hvz8/Bn/jdFoxEcffYSqqip89dVXWLNmDSoqKnD55ZeLtrHUURyNA/FlyBaOXC6HRCJBSkoK56XU3d2NiYmJecfV/RHiOh8aGurwBKcnsc/qi4mJ4Rq6+RCxRBilpqYKmpNnNpuxe/duXHbZZfjJT37C2+vMMAy+9a1vobe3FxKJBC+++CK+9a1vcb9vbm7GrbfeCo1Ggy1btuCFF14IuM+4yKHiyJ8YHx/H2rVrUVVVhc2bN+Obb75Bf38/1q9fj97eXp8UC2az2eHzNpvN+OSTT1BdXY3PPvsMq1evRkVFBa666irRNJY6CqmYBJJVgdFo5ISSTqdDaGgoCgsLA87HiGVZtLS0IDw83CfCk+23TUkETXJyskui3mq1chmJQgoji8WC73znOygvL8dDDz3Ee5P7yMgI0tPT8cEHH+CXv/wlTp06xf3+iiuuwEMPPYQNGzZg3bp1+NGPfoTKykrejk9xGyqO/IlHH30UKSkpMBgM0Gg0eOKJJwAAl156KZ599llccsklXj5Dz2GxWHD8+HFUVVXhk08+QUlJCSorK3HNNdeIegScxIFMTU057WPjD5AeG6vVivj4eCgUChgMBo/3ungLhmHQ0tKCqKgoLF682Nun4xJk21SpVEIqlXIN3Y587xiGQUNDA1JSUrBw4ULBztFqteIHP/gB8vLy8Nhjjwn6mfrzn/+Mr776Cq+//jqA89YlK1asQH9/PwDg1VdfxenTp/HKK68Idg4Up/HqRSYwboc9hMFgwFtvvYXGxkb84he/QFFREfe7hQsXYnh42Itn53mCg4Nx1VVX4aqrroLVasWJEydQXV2Nxx9/HMuWLUNlZSU2bNggqgZn2ziQ4uJivxYBM8EwDFpbWxEWFsY1H2dkZHC9Lr29vZyXUmpqqk+7PM8EwzBobm5GTEwMcnJyvH06LhMVFYWcnBzk5ORwUSZtbW3zOqsTYZScnCy4MHrggQeQlZUlqDB65pln8PTTTyMlJQVHjhzhfj4wMICsrCzuvxcuXIja2lpBzoHim1BxxCPvvvsurr/+ekRFRcFkMk2rOEil0oBrZrUlKCgIa9euxdq1a8EwDL755hvs27cPzzzzDBYvXoyKigpcd911iI2N9do5ejoORGyQ5x8bG3uBMAgODkZqaipSU1PBMAxUKhUGBwfR1taG+Ph4yGQyJCQk+HSVjTz/+Ph4ZGdne/t0eCM8PByZmZnIzMzknNVJULJtlAnLsmhsbERycrKgru8Mw+AnP/kJEhIS8OSTTwr6PfvZz36Gn/3sZ6ipqcG3vvUttLW1QSKROHx9/uMf/4iMjAxceeWV6OzsBAA88MADePHFFwHgAs+nBx98EJWVlbjqqqsEe04Uz0DFEY+88847eOihhwAA6enpGBwc5H43MDDglZgJMSKVSrF69WqsXr0av/3tb9HY2Ih9+/bhxRdfxIIFC1BRUYEbbrjBo0Gm3o4D8Tak+TY5OXnaHfVM2G7TMAzDeSl1dHTw3hTsKUjFJCkpad7n78uEhIQgPT0d6enpXJQJEbmkqiRkjxHDMPj5z3+O0NBQ/Pd//7fHxPS2bdvwwAMPQKVSITk52aHrs1arxaFDh7Bv3z6cOHGC+/ckUxAAwsLCLjDEvP/++6f5oK1fv37awA7FN6A9Rzyh0+mwaNEijIyMICgoCN988w1uv/12nDp1Cr29vdi+fTtaWloCrhrhDGQ6qKqqCocOHUJiYiIqKiqwadMmJCcnC3ZcscWBeBrifLxgwQK3xrVn81JKSUkRdUM7EYYpKSkBKYwZhkFjYyPCwsIglUqnRZkkJyfz9t4xDINHHnkEWq0Wr7zyiuDCqKurC5GRkUhLS8OJEydw++2349y5c9zvi4uL8dJLL+Hyyy/HunXr8OSTT2Lt2rXc7++9917cdNNN+PTTT1FUVIR33nkHarUa9fX1KCsrAwAcPXp02vOglSNeoQ3Z/sDnn3+Ohx9+GJ988gn3s6eeegp/+ctfEB4ejtdeew2XXXaZ907QxyCOxFVVVTh48CAiIyNRUVGBzZs3IzU1lTeRKfY4EKEhwjA7O5vXrCzipTQ6OgqlUonQ0FBOKInJEsFT4+pihfRYxcbGYtGiRQCmR5kolcp5fbAcgWVZPP744xgZGcHrr7/ukari6dOnsWvXLlitVshkMvzhD39AX18fOjs7sWfPHpw+fRp33nknNBoNdu/ejccff3za3//lL3/ByZMnYbVasX37djQ0NADANHGUlZWFf/7zn2hsbERkZOS0v2cYBqGhodPWBIpTUHFEocwFy7Lo7u5GdXU1Dhw4gODgYGzevBmVlZVIT093WSj5WhwI3xiNRtTX1yM3N1fQyhwATE1NcaaTEokEMpkMMpnMq6aaZCs1PT1dUINDseJo8/nU1BQUCsW0KBOZTHaBGJgNlmXx9NNPo7OzE2+++aaoq4i26HQ6fOc738Hrr7+O8PBw3HnnnRgZGeF+n5iYiPfeew+7d+/Gnj17pg3gAOevL5s2baLiyHWoOKJQHIVlWQwMDKC6uhr79++HxWLB5s2bsWXLFmRnZzsslEgcSHFxMaKjowU+a/FBKmb5+flISEjw6LHJ9JRcLofVauUWW09OLZKtxIyMDEEjMcQKy7Jobm5GdHS0U1N5tlEmJpMJSUlJc9o7sCyL559/HvX19Xj77bd9yuft3nvvxeeff46srCz86Ec/wrPPPotDhw7hV7/6FR599FFs2rQJhw4dwu7du2nlSBioOKJQXIGYvNXU1KCmpoa7U6uoqJjTuE+pVOLcuXMoKyvzizgQZ9HpdGhsbBRFxcxkMkGpVGJ0dBQmk4kbM4+OjhasP89sNnM9ZnxuJfoKxOAyMjLSLR8nYu8gl8uh1WqRkJCAmJgYbuuUZVn86U9/wueff4733ntPVNupjqDX66f5Qm3atAnvvvsurr76apw8eRJbtmzhxNJtt92G3NzcC/7+wQcfxJ///GdPn7q/QMURhcIHCoUC+/fvR01NDVQqFTZu3IgtW7Zg2bJl3EL72muvISYmBlu3bvW5izUfkEkbMVbMLBYLlEol585NqhJ8eimZzWbU1dVh0aJFkMlkvDymL0GGHojzN1+QKJP3338fv/vd71BYWIjMzEz09PTgwIEDPueOD5yfPj5y5AiGh4exfft2JCQk4MMPP0RERAQ6Ozuxbt06/PCHP8S3v/1tvPHGG7jlllvwzjvv4LnnnsOyZctw5ZVX4vbbb0dNTQ0dxHENKo4oFL5Rq9U4ePAgqqurMTg4iA0bNmBqagpffvkl9u/f71GbALFAthJLSkpEZbw5E2TMXC6XY2JighcvJdJ8npOTg5SUFJ7PWPwQYRQWFiZoJIrVasVTTz2F999/HyEhIcjJyUFlZSU2bdqExMREQY4pBI2NjYiLi0N2djZ+8Ytf4PPPP8d9992HnTt3YmRkBPfccw/KysrAsiwee+wx3Hfffdi8eTNyc3Nx33334YMPPsA999yDiy++GLt37/b20/FFqDiiUIREo9Hg29/+NhoaGhATE4P169ejsrISZWVlPm1a6AxqtRodHR0+uZVo66U0NjaG2NhYyGQyJCYmOjz1ZDKZUFdX55HmczFCnN9DQkIED9H9+9//jv/93//F+++/j4iICLS3t2P//v04dOgQoqOjUVtb61O9RwAgl8tnrDS++eabuPnmmxEaGoqenh6EhIQgIyMDnZ2dyM3NxejoKNrb23HllVd64ax9HiqOKBShsFqtuO+++yCVSvHiiy9Cr9fj8OHDqKqqQltbG9atW4eKigqsXr3ap0wLnUGhUKC7uxulpaU+ub1hC8uyGB8f57yUHPHjIVN5eXl5AWnXwLIs2tvbERwcLLgweu+997B3715OCNkzm8igUGaAiiOK93jrrbemubcODw9j7969uPvuu7mth1tuuQW//vWvvXSGrmMymXD77bdj+fLleOSRRy5YFPR6PY4cOYKqqirU19fjiiuuQEVFBdasWeMz48bzMTIygv7+fpSVlfnc3fp82PvxzOSlZDAYUF9fj6VLl/rUlg5fEGEUFBSEJUuWCCqMDhw4gJdffhmHDh3yeqM/xS+g4ogiDsbHx7F27VqcOnUKq1atQlNTk7dPyS0YhsHRo0dx3XXXzftvjUYjjh07hqqqKnz99ddYs2YNKisrsXbtWp8VFYODgxgZGUFpaanfiL25IEn0CoUCQUFBiI+Px+joKJYvXx6QPWYsy+LMmTOQSCRYunSpoMKotrYWzz33HGpraz1uDUHxW6g4ooiDRx99FCkpKdi2bRt27dqFTz/91Nun5BXMZjM+/vhjVFdX4/jx41i9ejUXCeArE269vb1Qq9UoKSnx2+3CudBoNGhsbERoaCiCgoKcNi70dViWRUdHB1iWRX5+vqDC6OjRo/jNb36Dw4cPB+S2JUUwqDiieB+DwYDCwkI0Njait7cXl19+OeLj41FQUIDnn38eeXl53j5Fr2CxWHD8+HHs27cP//rXv1BaWorKykpcc801omxsJm7iWq0WRUVFAdNwbsvU1BQaGxtRUFCAuLi4C4wLPeGl5E1I9A7DMIILo3/+85/41a9+hdraWtpLROEbKo4o3ufNN9/E119/jT/84Q/czxiGwXPPPYeamhp8/vnnXjw7cWC1WnHixAlUVVXho48+QkFBASorK3HttdeKYjSeLIpmsxnLly/3y4V/PojBZVFREWJiYi74vdls5ryU9Ho956UUGxvrF68Xy7I4d+4cLBbLNH8vIfj000/x8MMPo7a2NiADmymCQ8URxftcd911eOihhy4YOdVqtVi4cCE0Go13TkykMAyDU6dOYd++fTh69Chyc3OxZcsWXH/99TMuykJDRrWDgoIE7y8RKyQrbzZhZI/VauUcnicnJ5GQkACZTIb4+HifrLgRYWQ2m1FQUCDoZ+DEiRPYs2cPDh06FJCBvRSPQMURxbvodDosWrQIIyMjCAoKwujoKKKjoxEVFYVXXnkFNTU1OHr0qLdPU7QwDIOGhgbs27cPH3zwATIyMrBlyxbccMMNHmkEZhgGLS0tiIiIENTcT8y46/xNHJ7lcjk0Gg3npZSUlOQTQollWXR2dsJoNApeNfz666/xwx/+EAcPHkRWVpZgx6EEPFQcUbzL559/jocffpgLSDxx4gR27drF+aK8+uqryM7O9u5J+ggkt6qqqgqHDh1CUlIS5w4sRLOq1WpFU1MT4uPjsWjRIt4f3xcgwogv52/ipTQ6Ogq1Wo3o6GhOKIl16q+zsxMGg0FwYVRXV4d7770XBw4ccCqwlkJxASqOKBR/hEwMVVVV4f3330dUVBQqKiqwefNmyGQytxcxq9WKhoYGpKSkIDMzk6ez9i3Gx8fR2tqK0tJSQSbRWJbF5OQk56UUHh7OeSmJxeKhq6sLU1NTKCwsFFQYNTU14bvf/S6qqqqwdOlSwY5DofwfVBxRKP4Oy7Lo6upCdXU1Dhw4gNDQUGzevBkVFRVIT093elEzm81oaGhARkYG0tPTBTprcTM+Po62tjaUlpZOS08XEnsvJZlMBplM5jXncdvJRCGFUWtrK7797W/j3XffRUFBgWDHoVBsoOKIQgkkWJbFwMAAqqqqsH//flitVmzevBmVlZXIzMycd5EjAaqBmiwPnPcxam9v96gwskev13MWASzLckLJU+fT3d2NyclJwS0bOjo6cMcdd+Dvf/87iouLBTsOhWIHFUcUSqDCsiyGh4dRU1OD/fv3Q6fT4YYbbkBFRcWMzdUTExNoa2sL2JwwQJwhukajkRNKFouF81KKiooSpKLT09ODiYkJwYVRV1cXbrnlFrz55psoLy/n7XFNJhMefPBBHDt2DCzL4re//S22b9/O/f7ee+/FwYMHER4ejrCwMLS0tPB2bIrPQMURhUI5j1wux/79+1FTUwO1Wo2NGzeioqIC+fn5aG9vx6233or9+/cHbIO8SqXCuXPnUFZWJtoQXaG9lHp7e6HRaFBcXCyoMOrt7cWuXbvw2muvYfXq1bw+9sjICI4fP44dO3ago6MDF110ERQKBdfHtWvXLuzZswerVq3i9bgUn4KKIwqFciFqtRr/+Mc/UF1dja6uLuh0Ojz66KO48cYbfWK8nG+USiU6OztRXl7uMzEu9l5KiYmJnJeSK0Kpr68PY2NjggujwcFB7Ny5Ey+//DLWrFkj2HEIycnJ6Ozs5AJrN2zYgFdeeQWLFy8W/NgU0ULFEYVCmZ26ujrccccduO2223Dy5El0d3fj2muvRUVFBcrKygJCKCkUCnR3d6OsrMxnhJE9DMNArVZDLpdjfHwccXFxkMlkSExMdOg97Ovr4/LyhHzPh4eHsWPHDrzwwgu44oorBDsO4a9//Sv+9re/4Z///Cf3s7Vr12JwcBDx8fHYs2cPbr31VsHPgyI6qDiiUFzl9ddfx3PPPQcA2LNnD3bv3o0XXngBv//97xEREYHnn38e119/vZfP0nU+//xz3HfffaiurubuoicnJ3H48GFUVVXhzJkzWLduHSoqKrB69Wq/FEpyuRw9PT0oLy8Xzfi8u7AsC41GA7lcPs1LKTk5ecag4P7+fiiVSpSWlgr6Ho+OjmL79u347//+b6xbt06w4xB++9vf4t1338Xhw4dnnLpsaWnB+vXr8cknnyA/P1/w86GICiqOKBRX0Gg0WLFiBRobG8EwDEpLS1FVVYWbb74Z33zzDfr7+7F+/Xr09vb65KLa39+Pbdu24cCBA7NGNOj1enzwwQeorq5GfX09rrzySlRUVGDNmjUzLrK+xujoKPr6+lBWVuaT76Ej2HspRUREcEIpJCQEAwMDUCgUggsjpVKJbdu24YknnsB1110n2HEI//Ef/wGdToc//elPc3pU7dixA7fddhsqKysFPyeKqKDiiEJxBaPRiEsuuQRHjhwBy7K4/vrrsWvXLkxMTOCJJ54AAFx66aV49tlncckll3j5bF1jamrKYXNDo9GIDz/8EFVVVTh16hTWrFmDrVu34rLLLvNJYTE8PIzBwUGUlZWJ1plaCLRaLSeULBYLAKC8vFxQi4CxsTFs27YN//Vf/4VNmzYJdhzCyZMn8ctf/hLHjh2b8fednZ3Izc1Fb28v1q5di88++yxgHeADGK+Ko8C54lD8jrCwMNx9991YtGgRWJbFs88+i/b2dhQVFXH/ZuHChRgeHvbiWbqHM67PYWFh2LRpEzZt2gSTyYSPP/4Y1dXV+OlPf4qLLroIlZWVuPLKK32iZ2doaAjDw8MBJ4wAIDo6GtHR0QgLC8PQ0BCSk5PR3NwMiUSClJQU3r2UxsfHsXPnTvz85z/3iDACgPr6epw6dQp5eXnczx5//HEMDg5iz549uOOOOzA0NISIiAj8/ve/p8KI4nFo5Yjis5w+fRp33303jh07BqvVinXr1iE5ORm33XYbvvOd7wA4PxJ8yy23YMuWLV4+W+9hsVjw2WefYd++ffjXv/6F8vJyVFZWYt26daLxCbJlcHAQIyMjKCsr84utQVcYGhrCyMgISktLudfA3kuJCCV38uQmJyexY8cO3Hfffbjpppv4On0KhQ9o5YhCcYVjx47huuuuQ2JiIgDguuuuQ0xMDAYHB7l/MzAwELC5Y4Tg4GBcffXVuPrqq2G1WvHFF1+gqqoKv/rVr7B8+XJUVFRgw4YNgmSTOUt/fz8UCkVAC6Ph4WGuamb7GoSFhWHhwoVYuHAhzGYzFAoFzp49C4PBwJlOxsTEOGwRoNPpcNNNN+H73/8+FUYUih20ckTxWQ4ePIjf/OY3+Pjjj2GxWHDFFVdg+/bt+Pvf/45Tp06ht7cX27dvR0tLi6C5U74KwzD4+uuvsW/fPnz44YfIy8vDli1bOJHpafr6+qBSqVBSUhLQwmhoaMgpcWi1WjnTSa1W65CXkl6vx4033ohbb70V3/72t/l8ChQKX9DKEYXiClu2bEFTUxM34nv77bfj4YcfhkQiQWFhIcLDw/Haa69RYTQLUqkUF198MS6++GIwDIP6+npUVVXh+eefR2ZmJrZs2YKNGzciPj5e8HMhrs9CT2SJmZGREQwODqK8vNwpcRgUFITU1FSkpqaCYRioVCoMDQ2hvb0dcXFxSE1NRXx8PPeYBoMBt9xyC2688UbcddddQj0dCsWnoZUjCoUyDZZl0dzcjKqqKtTW1iI5ORmVlZW44YYbBMlz81SAqpgZHR1Ff38/rw3oDMNwXkr33HMPkpOTsWnTJhw6dAjXXXcd7rvvPnrjQBEzdJSfQqGIE5ZlcebMGVRVVeH9999HbGwstmzZgs2bNyMlJcXtxbWzsxNTU1MoLCwMaGHU19eH8vJywSbzGIbBJ598gqeffhpdXV249NJLsW3bNmzcuJGL7KBQRAYVRxQKRfywLIvOzk5UV1fjH//4B0JDQ7FlyxZUVFQgLS3NKaFEHstgMKCwsDBgKxhyuRy9vb2CCiPg/MTit7/9baxcuRL/+Z//idbWVtTU1ODQoUNITk7G/fff79NO8hS/hIojCoXiW7Asi76+PlRXV+PAgQNgGAabNm3C1q1bsXDhwjnFDsuyOHfuHEwmE5YvXx6wwkihUKCnp0dw92+r1Yrvf//7WLp0KR599NELXu/Ozk5MTEygvLxcsHOgUFyAiiMKheK7sCyL4eFhVFdXY//+/dDr9bjhhhtQUVGBxYsXT1uMGYbBl19+ifj4eCxbtiyghVF3d7fgeXFWqxX3338/0tPT8dRTTwXs603xSag4olAo/oNcLsf+/ftRXV2NsbExbNy4EZWVlcjLy8N3v/tdxMfH4/e//33ALtRKpRJdXV2CCyOGYfCjH/0IsbGx+N3vfhewPV0Un4WKIwqF4p+oVCr84x//QFVVFdra2pCbm4snn3wyYBuwiTAqKysTNMaFYRj853/+JyQSCV588cWAfK0pPg8VRxQKxX+xWq1cxaisrAw1NTXo6enBtddei8rKyoDxNlKpVDh37hzKy8sFF0aPPPIIdDodXn755YB4bSl+CRVHFEog8vrrr+O5554DAOzZswe7d+9GXFwcUlJSAAC33HILfv3rX3vzFN3GarXirrvuwuLFi6c1A09OTqK2thbV1dU4c+YM1q1bh8rKSqxatcovF3O1Wo2zZ88KLoxYlsXjjz+O0dFRvPbaawHrNE7xC6g4olBc5ZFHHsEll1yClpYWSKVS/OQnP8Ef//hHZGRk4Morr0RnZycA4IEHHsCLL74IAFi4cCHS0tK8edrQaDRYsWIFGhsbwTAMSktLcfLkSaxfvx5NTU1ePTc++f3vfw+DwYCHH3541n8zNTWF//f//h9qamrQ2NiIK664ApWVlbjkkkv8YnH3pDAiPkZvvvmmX7x2lICGxodQKI6yc+dO9Pf3c/89NDSEd999FwkJCTCbzRgcHERbWxv27duHEydOcCG0k5OTaG5uBnA+wNPb4igiIgJxcXGYmpoCy7JISEiA0WhEQkKCV8+Lbx588MF5F+nIyEhs374d27dvh8FgwIcffoi33noLDz74IC677DJs3boVl112maA+QEIxNjaGs2fPCt5jxLIsnnvuObS3t+Ptt9+mwohCcRNaOaL4FJdccglOnjzJ/ffLL7+MuLg43HLLLdBqtfjZz36Gm266CZ9++imKiorwzjvvQK1Wo76+HmVlZQCAo0ePimLr5o9//CN++tOfgmVZPPvss7jyyitx+eWXIz4+HgUFBXj++eeRl5fn7dP0GiaTCR9//DGqqqrwxRdf4OKLL0ZlZSWuuOIKQYUGX4yNjeHMmTMoLy9HWFiYYMdhWRZ//OMfceLECbz77rs+8dpQKA5At9UoFEcpKCjg4g7WrVuH4uJiqNVqfO9738PFF1+M73//+/jqq69gtVqxfft2NDQ0AMA0cZSVlYU77rjDW08BAHD69GncfffdOHbsGKxWK9atW4e3334bxcXFYBgGzz33HGpqavD555979TzFgsViwaeffop9+/bh008/xYoVK1BZWYmrr74a4eHh3j69C9BoNGhvb0dZWZmg58eyLP7yl7/g2LFjqK6uFlSEUSgehoojCsVRLr30UnzxxRfo7u7GI488gu9+97uora3FsmXLMDw8jB/+8If4zne+g9dffx3h4eG48847MTIywv19YmIi3nvvPS8+g/M888wz0Gg0eOqppwAAP/3pT5Geno4f//jHAACtVouFCxdCo9F48SzFidVqxeeff46qqip8/PHHKCwsREVFBa699lpERkZ6+/Q8Koz27t2L999/HwcOHBClSKRQ3MCr4sj7ewsUioOwLMv1Uuj1ekRHR6OwsBCffvop/vSnP+H+++/HT3/6U7S1tWHXrl3417/+BY1Gg2PHjuHyyy/HsWPHMDU15eVncZ5ly5bh448/hsFggFarxUcffYSkpCTodDoAwFtvvYWLLrrIy2cpToKCgnDFFVfgxRdfRENDAx588EGcOnUK69atw+23347q6mpotVqvnNv4+LhHhBEA/P3vf8f+/ftRU1NDhRGFwjO+1+FICVg6OzuRk5MDABgcHERiYiLi4uLQ39+PF154ATExMcjMzOS20gDg2WefhU6nQ21tLf7rv/7LW6d+AVu2bEFTUxPy8/MBALfffjuWLl2K5cuXIzg4GHl5efjLX/7i5bMUP1KpFJdccgkuueQSMAyDuro6VFVV4dlnn0VmZiYqKio8ljw/Pj6OtrY2lJaWCi5W3nvvPbz99tuora0VRbWMQvE36LYaxWd4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\n",
      "text/plain": [
       "<Figure size 720x720 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "def kmeansPltShow(data):\n",
    "    x = data[\"成绩\"]\n",
    "    y = data[\"绩点\"]\n",
    "    z = data[\"签到次数（开课13次）\"]\n",
    "    fig = plt.figure(figsize=(10,10))\n",
    "    \n",
    "    ax = fig.gca(projection=\"3d\")\n",
    "    ax.scatter(x, y, z, zdir=\"z\", c=\"#00DDAA\", marker=\"o\", s=40)\n",
    "    ax.set(xlabel=\"成绩\", ylabel=\"绩点\", zlabel=\"签到数\")\n",
    "    plt.title(\"成绩/绩点/签到数\")\n",
    "    plt.show()\n",
    "kmeansPltShow(data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c13dee04",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "6f7e533c",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "7b836917",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "4fb9e893",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "46382520",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "8ac29066",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "a2fe8bde",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "94b24e53",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "51671895",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "87836abb",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "9041d332",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
